狂神JAVA博客MySQL_狂神说SpringBoot09:整合MyBatis

狂神说SpringBoot系列连载课程,通俗易懂,基于SpringBoot2.2.5版本,欢迎各位狂粉转发关注学习。

微信公众号:狂神说(首发)  Bilibili:狂神说Java(视频)

未经作者授权,禁止转载

整合MyBatis

官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

Maven仓库地址:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter/2.1.1

da8648aab766ff721d4f14f7d8a781f7.png

整合测试

1、导入 MyBatis 所需要的依赖

org.mybatis.spring.boot

mybatis-spring-boot-starter

2.1.1

2、配置数据库连接信息(不变)

spring:

datasource:

username: root

password: 123456

#?serverTimezone=UTC解决时区的报错

url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8

driver-class-name: com.mysql.cj.jdbc.Driver

type: com.alibaba.druid.pool.DruidDataSource

#Spring Boot 默认是不注入这些属性值的,需要自己绑定

#druid 数据源专有配置

initialSize: 5

minIdle: 5

maxActive: 20

maxWait: 60000

timeBetweenEvictionRunsMillis: 60000

minEvictableIdleTimeMillis: 300000

validationQuery: SELECT 1 FROM DUAL

testWhileIdle: true

testOnBorrow: false

testOnReturn: false

poolPreparedStatements: true

#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入

#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority

#则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j

filters: stat,wall,log4j

maxPoolPreparedStatementPerConnectionSize: 20

useGlobalDataSourceStat: true

connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

3、测试数据库是否连接成功!

4、创建实体类,导入 Lombok!

Department.java

packagecom.kuang.pojo;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;

@Data

@NoArgsConstructor

@AllArgsConstructorpublic classDepartment {privateInteger id;privateString departmentName;

}

5、创建mapper目录以及对应的 Mapper 接口

DepartmentMapper.java

//@Mapper : 表示本类是一个 MyBatis 的 Mapper

@Mapper

@Repositorypublic interfaceDepartmentMapper {//获取所有部门信息

ListgetDepartments();//通过id获得部门

Department getDepartment(Integer id);

}

6、对应的Mapper映射文件

DepartmentMapper.xml

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from department;

select * from department where id = #{id};

7、maven配置资源过滤问题

src/main/java

**/*.xml

true

8、编写部门的 DepartmentController 进行测试!

@RestControllerpublic classDepartmentController {

@Autowired

DepartmentMapper departmentMapper;//查询全部部门

@GetMapping("/getDepartments")public ListgetDepartments(){returndepartmentMapper.getDepartments();

}//查询全部部门

@GetMapping("/getDepartment/{id}")public Department getDepartment(@PathVariable("id") Integer id){returndepartmentMapper.getDepartment(id);

}

}

启动项目访问进行测试!

我们增加一个员工类再测试下,为之后做准备

1、新建一个pojo类 Employee ;

@Data

@AllArgsConstructor

@NoArgsConstructorpublic classEmployee {privateInteger id;privateString lastName;privateString email;//1 male, 0 female

privateInteger gender;privateInteger department;privateDate birth;private Department eDepartment; //冗余设计

}

2、新建一个 EmployeeMapper 接口

//@Mapper : 表示本类是一个 MyBatis 的 Mapper

@Mapper

@Repositorypublic interfaceEmployeeMapper {//获取所有员工信息

ListgetEmployees();//新增一个员工

intsave(Employee employee);//通过id获得员工信息

Employee get(Integer id);//通过id删除员工

intdelete(Integer id);

}

3、编写 EmployeeMapper.xml 配置文件

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select e.id as eid,last_name,email,gender,birth,d.id as did,d.department_name as dname

from department d,employee e

where d.id = e.department

insert into employee (last_name,email,gender,department,birth)

values (#{lastName},#{email},#{gender},#{department},#{birth});

select * from employee where id = #{id}

delete from employee where id = #{id}

4、编写EmployeeController类进行测试

@RestControllerpublic classEmployeeController {

@Autowired

EmployeeMapper employeeMapper;//获取所有员工信息

@GetMapping("/getEmployees")public ListgetEmployees(){returnemployeeMapper.getEmployees();

}

@GetMapping("/save")public intsave(){

Employee employee= newEmployee();

employee.setLastName("kuangshen");

employee.setEmail("qinjiang@qq.com");

employee.setGender(1);

employee.setDepartment(101);

employee.setBirth(newDate());returnemployeeMapper.save(employee);

}//通过id获得员工信息

@GetMapping("/get/{id}")public Employee get(@PathVariable("id") Integer id){returnemployeeMapper.get(id);

}//通过id删除员工

@GetMapping("/delete/{id}")public int delete(@PathVariable("id") Integer id){returnemployeeMapper.delete(id);

}

}

测试结果完成,搞定收工!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值