栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis笔记(一)Spring Boot整合MyBatis实现增删查改详解(入门版)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis笔记(一)Spring Boot整合MyBatis实现增删查改详解(入门版)

目录
    • 一、简介
    • 二、maven依赖
    • 三、配置文件
      • 3.1、启动类
      • 3.2、mybatis.xml
      • 3.3、application.yml
      • 3.4、数据库数据准备
    • 四、具体使用
      • 4.1、包装类
      • 4.2、mapper接口
      • 4.3、映射文件
    • 五、测试
      • 5.1、接口
      • 5.2、实现类
      • 5.3、测试类
      • 5.4、运行结果
        • 5.4.1、查询所有员工
        • 5.4.2、查询单个员工
        • 5.4.3、添加员工
        • 5.4.4、修改员工
        • 5.4.5、删除员工
    • 结语

一、简介

  MyBatis也挺流行的,我们也用SpringBoot整合MyBatis做一个简单的增删查改,作为MyBatis的入门教程,让大家有个简单的了解。

二、maven依赖


    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.5.2
        
    
    com.alian
    mybatis
    0.0.1-SNAPSHOT
    mybatis
    Spring Boot整合mybatis
    
        1.8
    
    

        
            org.springframework.boot
            spring-boot-starter-web
            2.5.2
        

        
            org.springframework.boot
            spring-boot-starter-data-jpa
            2.5.2
        

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.1.4
        

        
            com.alibaba
            druid-spring-boot-starter
            1.2.6
        

        
            mysql
            mysql-connector-java
            8.0.26
            runtime
        

        
        
            org.projectlombok
            lombok
            1.18.20
        

        
        
            org.springframework.boot
            spring-boot-test
            2.5.2
        

        
        
            org.springframework
            spring-test
            5.3.8
        

        
        
            junit
            junit
            ${junit.version}
        

    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


三、配置文件 3.1、启动类
package com.alian.mybatis;

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

@MapperScan("com.alian.mybatis.mapper")
@SpringBootApplication
public class MybatisApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisApplication.class, args);
    }

}

我们需要在启动类上加上注解@MapperScan(“com.alian.mybatis.mapper”)

3.2、mybatis.xml



	
		
		
		
		
		
		
		
	

	

  此文件我放到resource/config目录下了,提醒一下,如果是希望输出mybatis里sql相关的日志信息,可以在settings配置:

	
3.3、application.yml
server:
  port: 8081
  servlet:
    context-path: /mybatis

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    username: test
    password: Test!@34
    url: jdbc:mysql://192.168.0.139:3306/test?characterEncoding=utf8&useUnicode=true&useSSL=false&zeroDateTimeBehavior=convertToNull&autoReconnect=true&allowMultiQueries=true&failOverReadonly=false&connectTimeout=6000&maxReconnects=5
    initialSize: 5
    minIdle: 5
    maxActive: 20

mybatis:
  config-location: classpath:config/mybatis.xml
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.alian.mybatis.dto

  这里我使用的是druid作为连接池,里面有三项MyBatis配置,我们也简单介绍下

  • config-location:也就是指定mybatis配置文件的地址,也就是上面我们resource/config/目录下mybatis.xml
  • mapper-locations:也就是我们mapper对应的xml的路径,这里使用通配符表示classpath:mapper目录下所有的xml文件
  • type-aliases-package:一般是用于mybatis结果返回的自定义pojo
3.4、数据库数据准备
CREATE TABLE `tb_inf_employee` (
   `id` varchar(10) NOT NULL DEFAULT '' COMMENT '主键',
   `emp_name` varchar(20) NOT NULL DEFAULT '' COMMENT '姓名',
   `age` int(2) NOT NULL DEFAULT '0' COMMENT '年龄',
   `salary` double(8,2) NOT NULL DEFAULT '0.00' COMMENT '工资',
   `department` varchar(20) NOT NULL DEFAULT '' COMMENT '部门',
   `hire_date` date NOT NULL DEFAULT '1970-07-01' COMMENT '入职时间',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `tb_inf_employee` (`id`, `emp_name`, `age`, `salary`, `department`, `hire_date`) VALUES 
('BAT10001','梁南生',32,32000.00,'研发部','2020-05-20'),
('BAT10002','唐鹏',31,25000.00,'研发部','2015-03-01'),
('BAT10003','王林',30,22000.00,'研发部','2015-08-01'),
('BAT10004','罗考聪',35,7000.00,'测试部','2016-11-20'),
('BAT10005','包雅馨',25,7000.00,'财务部','2018-07-01'),
('BAT10006','朱健儿',26,8000.00,'人事部','2019-01-01');
四、具体使用 4.1、包装类

EmployeeDto.java

package com.alian.mybatis.dto;

import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;

@Data
public class EmployeeDto implements Serializable {

    private static final long serialVersionUID = 1L;

    
    private String id;

    
    private String name;

    
    private int age;

    
    private double salary;

    
    private String department;

    
    private LocalDate hireDate;

}
4.2、mapper接口

EmployeeMapper.java

package com.alian.mybatis.mapper;

import com.alian.mybatis.dto.EmployeeDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface EmployeeMapper {

    
    List findAll();

    
    EmployeeDto getById(@Param("id") String id);

    
    int addEmployee(EmployeeDto employeeDto);

    
    int updateById(@Param("emp") EmployeeDto employeeDto);

    
    int deleteById(@Param("id") String id);
}

  这里需要提到一个注解是@Param,就相当于给参数弄了一个别名,举个例子,如果你Mapper接口定义的是:

	EmployeeDto getById(@Param("empId") String id);

那么对应的xml配置就是

    
        select
			id,
			emp_name,
			age,
			salary,
			department,
			hire_date
        from
        	tb_inf_employee