zoukankan      html  css  js  c++  java
  • 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,然后回车:

    这里写图片描述

    成功!!!!

  • 相关阅读:
    自定义TabBarController
    UITabBarController剖析
    IOS中UIScrollView的contentSize、contentOffset和contentInset属性
    iOS开发 剖析网易新闻标签栏视图切换
    transitionFromViewController方法的使用
    ViewController生命周期
    1816. Truncate Sentence
    1290. 二进制链表转整数
    1302. 层数最深叶子节点的和
    102.二叉树的层次遍历
  • 原文地址:https://www.cnblogs.com/kekexuanxaun/p/9472514.html
Copyright © 2011-2022 走看看