首页 > 其他分享 >mybatis入门写法思路

mybatis入门写法思路

时间:2022-11-14 16:25:00浏览次数:41  
标签:mapper java 入门 创建 req 接口 mybatis 写法

废话不说直接上思路:

 

1.先用maven安装mybatis

 

 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
  <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.2</version>
  </dependency>

 

2.导入mybatis相关驱动

 

  <!--导入依赖-->
  <dependencies>
      <!--mysql驱动-->
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.46</version>
      </dependency>
      <!--Mybatis-->
      <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.5.2</version>
      </dependency>
      <!--junit-->
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
      </dependency>
  </dependencies>

 

3.编写mybatis工具类,目得简化编写难度

 

import java.io.IOException;

public class mybatisUtils {
	private static SqlSessionFactory sqlSessionFactory;
	static {
		try {
			String resource = "mybatis-config.xml";
			InputStream inputStream = Resources.getResourceAsStream(resource);
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	// 获取SqlSession连接
	public static SqlSession getSession() {
		return sqlSessionFactory.openSession();
	}
}

 

 

4.在“resources”文件下编写 "mybatis-config.xml"

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>//数据库驱动,不同驱动可连接不同数据库服务器
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>//连接数据库的目录
                <property name="username" value="root"/>//数据库名字,默认root
                <property name="password" value="123456"/>//数据库密码,自己的数据库密码,一般为root
            </dataSource>
        </environment>
    </environments>
</configuration>

 

4.创建mapper文件,在mapper文件下创建"xxxMapper.xml"(这个文件可以理解为"Dao层的mysql语句存放处")

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.userMapper">
  <select id="selectFromDao" parameterType="map"  resultType="com.custmor.customer">
  select * from customer where owner_username=#{username} and state =#{state}
  </select>
  <select id="selectfromId" parameterType="map" resultType="com.custmor.user">
  
  select * from users where username=#{username} and password=#{password}
  
  </select>
</mapper>

mapper namespace = “Mapper.xml存放位置,具体到每个目录

select id =“对应mapper接口中方法名称

paramterType = “参数类型

resultType=“mysql对应数据类的具体位置,具体到每个目录

 

5.配置完毕后,可以创建xxxMapper接口,方法名要和Mapper.xml.id一致; 先完成五步再去配置第四步,我认为是最优的选择;

ps:可以对比第四步,看看配置是否一致;

package mapper;

import java.util.List;

public interface userMapper {
	java.util.List<customer> selectFromDao(java.util.Map<String, Object> map);

	List<user> selectfromId(java.util.Map<String, Object> maps);

}

 

6.创建Mapper接口的implement实现方法,

 

(1)创建session工厂:调用mybatis工具类,getsession()即可创建,创建后赋值一个空间;因为任何事务都需要落脚点才能继续运行;所以要赋值给Sqlsession session;

(2)创建工厂后,要用工厂读取Mapper.xml,SQL语句,然后赋值给userMapper接口里;

(3)最后,使用userMapper接口,调用里面的方法;然后赋值给一个空间,然后读取空间的数据;

(4)把session工厂给关闭. 语法为session.close();

 

public class userMapperService implements userMapper {

	public List<customer> selectFromDao(Map<String, Object> map) {
		SqlSession session = utils.mybatisUtils.getSession();
		userMapper mapper = session.getMapper(userMapper.class);
		List<customer> user = mapper.selectFromDao(map);

		for (customer cus : user) {
			System.out.println(cus);
		}
		session.close();
		return user;

	}
}

 

7. 创建contorller层,生成一个接口传给前端调用;

(1)extends "HttpServlet" 创建其中的doget方法;

(2)设置Http请求的编码方式 需要用参数req中的 setCharacterEncoding设置;

(3)设置Http请求投,需要用参数req中的setContenType设置;

(4)获取前端用户输入的值,需要用参数req中的getParameter获取;

(5)获取完毕之后,创建接口对象,把Mapper接口的implement实现方法赋值给接口;

(6)调用对象中的方法,把获取的值传入方法参数中;

(7)创建ObjectMapper json格式,调用objectMapper中的转换方法然后把以上的接口名称传递过去即可转换,最后创建一个相应的接收变量,然后把objectMapper赋值进去;

(8)然后用resp.getwriter().write(“this.变量”) 即可完毕;

@WebServlet("/select")
public class testFromMap extends HttpServlet {
	@Override
	protected void doGet(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
			throws javax.servlet.ServletException, java.io.IOException {
		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/html;charset=UTF-8");
		String name = req.getParameter("owner_username");
		String state = req.getParameter("state");
//	String names = req.getParameter("name");
		java.util.Map<String, Object> maps = new HashMap<String, Object>();
		maps.put("username", name);
		maps.put("state", state);
//	maps.put("name", names);
		userMapper mapper = new userMapperService();
		List<customer> list = mapper.selectFromDao(maps);
		ObjectMapper map = new ObjectMapper();
		String object = map.writerWithDefaultPrettyPrinter().writeValueAsString(list);
		resp.getWriter().write(object);
	}
}

 

标签:mapper,java,入门,创建,req,接口,mybatis,写法
From: https://www.cnblogs.com/ZhuAo/p/16889311.html

相关文章

  • 【Python基础】快速入门Python(讲解、习题)
    0.导语Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于......
  • SqlServer入门知识-创建临时表
    https://zhuanlan.zhihu.com/p/562721751平时会直接在正常的库里面直接建表,好像和这个不一样,了解下。平时用时会直接在库里备份数据,然后删掉备份的表。属于数据备份,不是真......
  • 龙哥分享的通达信公式常用写法
     #----------------------------------------------------------------------------------#-----MACD系统默认参数12、26、9DIF:EMA(CLOSE,12)-EMA(CLOSE,26);DE......
  • 第一章 linux-shell命令入门
      本人目前正在学习linux驱动开发,利用我想记录我Linux的学习过程,并分享出来,为大家提供一些经验,同时加强我对知识的总结能力,希望我的博客能为大家提供帮助。废话不多说,我......
  • k8s工作原理(chrono《kubernetes入门实战课》笔记整理)
     【架构理解】k8s可以编排容器,也可以对服务器进行监管。在k8s,不会区分dev(开发人员)和ops(运维人员),而是devops(提倡开发时就要考虑运维,运维也要尽早开始考虑如何对应用进行运......
  • DTSE Tech Talk | 第10期:云会议带你入门音视频世界
    摘要:本期直播主题是《云会议带你入门音视频世界》,华为云媒体服务产品部资深专家金云飞,与开发者们交流华为云会议在实时音视频行业中的集成应用,帮助开发者更好的理解华为云......
  • 我的mybatis-plus用法,被全公司同事开始悄悄模仿了!
    本文主要介绍mybatis-plus这款插件,针对springboot用户。包括引入,配置,使用,以及扩展等常用的方面做一个汇总整理,尽量包含大家常用的场景内容。作者:我犟不过你关于mybati......
  • Java 云原生微服务框架 Quarkus 入门实践
    1.概述1.1定义Quarkus定位要做超声速、亚原子的Java框架,使用最好标准为OpenJDKHotSpot和GraalVM量身定制的KubernetesNativeJava栈;从一开始就是针对Kubernetes设计的云......
  • PG基本操作入门
    1.安装介绍  windos下安装,双击安装包,例如:postgressql-10.13-1-windows-x64.exe输入默认管理用户postgres的密码:<自拟>2.操作数据库  2.1管理工具   ......
  • 篇(11)-Asp.Net Core入门实战-用户登录,记录Cookie,使用Session
    入门实战-用户登录,记录Cookie,使用Session用户登录功能是做项目开发的必备功能,各个业务点中都要读取和使用用户信息,所以用户登录,并记录用户信息可以使用Cookie,Session等功......