SpringBoot整合Mybatis详细教程

一、准备工作

先在eclipse中导入mybatis的dtd约束:

  • mybatis-3-config.dtd
  • mybatis-3-mapper.dtd

导入方法如图: 
这里写图片描述 
新建一张数据表dept:

DROP TABLE IF EXISTS `dept`; CREATE TABLE `dept` ( `deptno` bigint(20) NOT NULL AUTO_INCREMENT, `dname` varchar(50) DEFAULT NULL, PRIMARY KEY (`deptno`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of dept -- ---------------------------- INSERT INTO `dept` VALUES ('1', '开发部'); INSERT INTO `dept` VALUES ('2', '财务部'); INSERT INTO `dept` VALUES ('3', '市场部'); INSERT INTO `dept` VALUES ('4', '后勤部'); INSERT INTO `dept` VALUES ('5', '公关部'); INSERT INTO `dept` VALUES ('9', '测试部'); INSERT INTO `dept` VALUES ('10', '测试部');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

二、Mybatis环境搭建

第一步:添加pom依赖,导入mybatis所需jar包,pom依赖如下:

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mybatis依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> <!-- mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- druid依赖 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.0</version> </dependency> <!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency> </dependencies>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

第二步:在src/main/resource目录下新建application.yml配置文件:

server:
  port: 8000   #  配置启动端口号  

mybatis: config-location: classpath:mybatis/mybatis.cfg.xml # mybatis主配置文件所在路径 type-aliases-package: cn.lizheng.study.mybatis.pojo # 定义所有操作类的别名所在包 mapper-locations: # 所有的mapper映射文件 - classpath:mybatis/mapper/*.xml spring: datasource: type: com.alibaba.druid.pool.DruidDataSource # 配置当前要使用的数据源的操作类型 driver-class-name: org.gjt.mm.mysql.Driver # 配置mysql的驱动程序类 url: jdbc:mysql://localhost:3306/数据库名字?useUnicode=true&characterEncoding=UTF-8 # 数据库连接地址 username: *** # 数据库用户名 password: *** # 数据库密码 filters: stat,wall,log4j # 配置druid过滤器,开启监控 dbcp2: # 进行数据库连接池的配置 min-idle: 5 # 数据库连接池的最小维持连接数 initial-size: 5 # 初始化提供的连接数 max-total: 5 # 最大连接数 max-wait-millis: 200 # 等待连接获取的最大超时时间 pagehelper: #pagehelper分页插件 helperDialect: mysql #设置数据库方言 reasonable: true supportMethodsArguments: true params: count=countSql 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

第三步:书写mybatis主配置文件(mybatis.cfg.xml 
在src/main/resource目录下新建文件夹目录:mybati,然后将在该目录下新建mybati.cfg.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>

    <!-- 进行mybatis的相应的环境的属性定义 --> <settings> <!-- 在本项目中开启二级缓存 --> <setting name="cacheEnabled" value="true"/> </settings> </configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

第四步:在src/mian/java目录中新建springboot启动类ApplicaitonStarter.java

package cn.lizheng.study.mybatis;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication public class ApplicationStarter { public static void main(String[] args){ SpringApplication.run(ApplicationStarter.class, args); } } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

第五步:编写pojo:Dept.java

package cn.lizheng.study.mybatis.pojo;

public class Dept { private Long deptno; private String dname; public Long getDeptno() { return deptno; } public void setDeptno(Long deptno) { this.deptno = deptno; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

第六步、编写pojo对应的mapper接口

package cn.lizheng.study.mybatis.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import cn.lizheng.study.mybatis.pojo.Dept;

/** * dept表mapper接口 * @author zhengL * */ @Mapper // 该注解一定要加,否则无法映射到mybatis的***.xml局部配置文件 public interface DeptMapper { List<Dept> findAll(); void addDept(Dept dept); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

第七步、创建dept表的mybatis局部配置文件dept.xml 
在第二步编写application.yml配置文件时,我们添加了mybatis的相关配置如下:

mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml    #  配置文件所在路径
  type-aliases-package: cn.lizheng.study.mybatis.pojo   #  定义所有操作类的别名所在包
  mapper-locations:                                     #  所有的mapper映射文件
    - classpath:mybatis/mapper/*.xml
  • 1
  • 2
  • 3
  • 4
  • 5

这个地方的三个配置路径一定要正确。所以我们在src/main/resource/mybatis目录下新建文件夹mapper,然后新建一个dept.xml,内容如下:

<?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="cn.lizheng.study.mybatis.mapper.DeptMapper"> <!-- 通过ID查询一个用户 --> <select id="findAll" resultType="Dept"> SELECT deptno,dname FROM dept ; </select> <insert id="addDept" parameterType="Dept" > INSERT INTO dept(dname) VALUES (#{dname}) ; </insert> </mapper>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

这个地方要注意namespace的路径一定要写正确。

第八步、创建DeptService接口

package cn.lizheng.study.mybatis.service;

import java.util.List;

import org.springframework.stereotype.Service;

import cn.lizheng.study.mybatis.pojo.Dept;

/** * dept服务接口 * @author zhengL * */ public interface DeptService { /** * 获取所有部门信息 * @return */ List<Dept> findAll(); /** * 添加部门 * @param dept */ void addDept(Dept dept); } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

第九步、创建DeptService接口的实现类DeptServiceImpl.java

package cn.lizheng.study.mybatis.serviceimpl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.lizheng.study.mybatis.mapper.DeptMapper; import cn.lizheng.study.mybatis.pojo.Dept; import cn.lizheng.study.mybatis.service.DeptService; /** * dept服务接口实现类 * @author zhengL * */ @Service // 该注解一定要写,否则无法注册bean public class DeptServiceImpl implements DeptService{ @Autowired private DeptMapper deptMapper; // 注入mapper @Override public List<Dept> findAll() { return deptMapper.findAll(); } @Override public void addDept(Dept dept) { deptMapper.addDept(dept); } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

第十步、编写dept对应的控制器类:DeptController.java

package cn.lizheng.study.mybatis.controller;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import cn.lizheng.study.mybatis.pojo.Dept; import cn.lizheng.study.mybatis.service.DeptService; /** * dept控制器 * @author zhengL * */ @RestController // 此注解指明该控制器直接返回数据,而不进行页面跳转 @RequestMapping("/dept") // 定义路由信息 public class DeptController { @Autowired private DeptService deptService; /** * 查询所有部门信息 * @return */ @RequestMapping("/findAll") // 则次路由信息应该是/dept/findAll public List<Dept> findAll(){ return deptService.findAll(); } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

最后在ApplicationStarter类上追加如下配置: 
@MapperScan(“cn.lizheng.study.mybatis.mapper”)

运行项目,然后在浏览器输入http://localhost:8000/dept/findAll,然后回车:

这里写图片描述

成功!!!!

猜你喜欢

转载自www.cnblogs.com/kekexuanxaun/p/9472514.html