详解SpringBoot集成Mybatis
Posted haichuangdianzi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解SpringBoot集成Mybatis相关的知识,希望对你有一定的参考价值。
1、新建springboot模块
- 先新建一个空项目,在空项目中新建一个子模块。
- 选择合适的java版本,默认使用spring官方服务器
- 注意第4个红框
- 在项目中可以根据需要添加依赖
- 因为要集成mybatis,所以要添加数据库,特别是数据库驱动一定要选
- 本次项目中共添加了5个依赖,如右侧红色框所示,这些依赖根据需要可以随时增减
- 把demo04去掉,此次项目模块名为MK
- 去掉后如图
2、mysql版本查看
新建完项目后,自动弹出pom.xml,可以先查看下mysql版本,因为在后面配置需要根据mysql版本,此时mysql版本号被隐藏了,不过可以进行查找,先点击③处
此时看到mysql版本号为一个变量mysql.version
- ctrl+F,查找,找到版本号为8.0.26,等下配置连接数据库的时候会用到。
3、添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.20</version>
</dependency>
4、数据源相关配置
- 修改application.propertites文件,主要修改文件类型,改为yml
- 修改方式如下,也可以直接按shift+F6
- 修改后缀名为yml
- 在yml文件中填入以下内容,需要注意的是①处和②处。①处,由于之前提到过mysql的版本为8,需要填mysql.cj.jdbc,如果是版本8以下需要填mysql.jdbc,注意,这里虽然报红,但是问题不大。②处,test为数据库名字,根据实际填写。
- 第3、4行为数据库的账号和密码
spring:
datasource:
username: root
password: 1234
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
type: com.alibaba.druid.pool.DruidDataSource
5、新建bean层
需要在com.xp包下新建bean包,同时新建Student类,这里介绍一个简单操作方法,在xp包下新建一个类,直接取名为bean.Student。
- 此时可以看到xp包下新建了bean包,bean包下新建了Student类。
- 在Student类完成以下内容,注意变量参数要跟数据库的参数值对应!
public class Student {
private Integer id;
private String name;
private Integer age;
private Double score;
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\\'' +
", age=" + age +
", score=" + score +
'}';
}
public Student() {
}
public Student(Integer id, String name, Integer age, Double score) {
this.id = id;
this.name = name;
this.age = age;
this.score = score;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
}
- 同时在yml文件中进行配置,指定好后可以在bean中的Student类可以使用别名 student
6、新建dao层
- 需要在com.xp包下新建dao包,同时新建StudentMapper接口,操作如下
- 功能是查询所有数据库信息
package com.xp.dao;
import com.xp.bean.Student;
import java.util.List;
public interface StudentMapper {
List<Student> selectAllStudent();
}
- 新建StudentMapper接口后还需要新建对应的映射文件,在resources下新建文件夹,文件夹名为mapper
- 新建文件名StudentMapper.xml
- 在文件中完成以下内容,注意第6行中的namespace,是到对应的StudentMapper接口文件;第9行中的student在第5点中提到过,第9~11行是数据库的查询语句,意思是将查询到的信息放到实体类student中
<?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="com.xp.dao.StudentMapper">
<!--查询多条数据-->
<select id="selectAllStudent" resultType="student">
SELECT id,name,age,score FROM t_student
</select>
</mapper>
- 在yml文件中配置下映射文件的路径
- 在StudentMapper接口文件中增加Mapper注释,这样才能扫描到
7、新建service层
- 在xp包下新建service包,在该包里新建StudentService接口
public interface StudentService {
List<Student> selectAllStudent();
}
- 再在该包里新建实现类StudentServiceImpl
- 重写**selectAllStudent()**方法
- 再添加以下内容。在service层中引入dao层中的studentMapper
@Service
public class StudentServiceImpl implements StudentService {
@Autowired
private StudentMapper studentMapper;
@Override
public List<Student> selectAllStudent() {
return studentMapper.selectAllStudent();
}
}
8、新建controller层
- 新建controller包,在该包下新建StudentController类
- 在StudentController类引入studentService类
@RestController
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("select")
public List<Student> selectStudent(){
return studentService.selectAllStudent();
}
}
- 在主函数入口处运行
- 输入网址:http://localhost:8080/select, 得到数据
补充说明
1、数据库内容暂时不写;
2、核心内容在于新建的四个层,bean层,dao层,service层,controller层
bean层
其中bean层也称实体层(Entity层),主要用于定义与数据库对象的属性,提供get/set方法,带参和无参的构造方法。
*操作:*新建类
dao层
也叫持久层,主要是和数据库进行交互,向数据库发送sql语句,完成数据的增删改查任务。在该层中新建接口类,再新建对应的配置类
*操作:*新建接口,再新建对应的mapepr(这步没有新建的实现类,而是通过映射来实现)
service层
和DAO层一样都是先设计接口,再创建要实现的类。
*操作:*新建接口,再新建对应的实现类
Controller层
负责前后端交互,接受前端请求,调用service层,接收service层返回的数据,最后返回具体的页面和数据到客户端
*操作:*新建类
小结:controller层调用了Service层的方法,Service层调用Dao层的方法,其中调用的参数是使用Entity层进行传递的。
补充:View层 此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示
也叫持久层,主要是和数据库进行交互,向数据库发送sql语句,完成数据的增删改查任务。在该层中新建接口类,再新建对应的配置类
*操作:*新建接口,再新建对应的mapepr(这步没有新建的实现类,而是通过映射来实现)
service层
和DAO层一样都是先设计接口,再创建要实现的类。
*操作:*新建接口,再新建对应的实现类
Controller层
负责前后端交互,接受前端请求,调用service层,接收service层返回的数据,最后返回具体的页面和数据到客户端
*操作:*新建类
小结:controller层调用了Service层的方法,Service层调用Dao层的方法,其中调用的参数是使用Entity层进行传递的。
补充:View层 此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示
以上是关于详解SpringBoot集成Mybatis的主要内容,如果未能解决你的问题,请参考以下文章
Springboot系列 集成接口文档swagger,使用,测试