SpringBoot系列-整合Mybatis(XML配置方式)
本文介绍下springboot整合mybatis(xml配置方式)的过程。
一、什么是 mybatis?
mybatis 是一款优秀的持久层框架,它支持定制化 sql、存储过程以及高级映射。mybatis 避免了几乎所有的 jdbc 代码和手动设置参数以及获取结果集。mybatis 可以使用简单的 xml 或注解来配置和映射原生类型、接口和 java 的 pojo(plain old java objects,普通老式 java 对象)为数据库中的记录。
二、整合方式
springboot整合mybatis也有两种方式,分别为xml配置方式和注解方式,主要优势点如下:
- 注解方式:代码更加精简,方便。
- xml配置方式:隔离sql和业务代码,清晰表达sql,尤其对于较长的sql。
xml映射文件也很简单,只有很少的几个*元素:
- cache – 对给定命名空间的缓存配置。
- cache-ref – 对其他命名空间缓存配置的引用。
- resultmap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。
- sql – 可被其他语句引用的可重用语句块。
- insert – 映射插入语句。
- update – 映射更新语句。
- delete – 映射删除语句。
- select – 映射查询语句。
本文介绍xml配置方式,后续文章再介绍注解方式。
三、实战
新建一个spring boot项目spring-boot-mybatis-xml,按照下面步骤操作。
1.pom.xml中引入jar
整合mybatis的核心是依赖mybatis-spring-boot-starter,它提供了:
- 自动检测现有的datasource。
- 将创建并注册sqlsessionfactory的实例,该实例使用sqlsessionfactorybean将该datasource作为输入进行传递。
- 将创建并注册从sqlsessionfactory中获取的sqlsessiontemplate的实例。
- 自动扫描您的mappers,将它们链接到sqlsessiontemplate并将其注册到spring上下文,以便将它们注入到您的bean中。
pom.xml重要内容如下:
<!-- mybatis-starter --> <dependency> <groupid>org.mybatis.spring.boot</groupid> <artifactid>mybatis-spring-boot-starter</artifactid> <version>2.1.1</version> </dependency> <!-- mysql 连接驱动依赖 --> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.39</version> </dependency> <dependency> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> <optional>true</optional> </dependency>
2.application.yml中添加配置
application.yml中添加数据源和mybatis的配置,内容如下:
spring: #数据源 datasource: url: jdbc:mysql://localhost:3306/demo?useunicode=true&characterencoding=utf-8&zerodatetimebehavior=converttonull username: root password: 123456 driver-class-name: com.mysql.jdbc.driver #mybatis配置 mybatis: typealiasespackage: com.example.springboot.mybatisxml.entity mapperlocations: classpath:mapper/*.xml config-location: classpath:mybatis-config.xml
3.添加user的映射文件
usermapper.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= "com.example.springboot.mybatisxml.dao.mapper.usermapper" > <resultmap id ="usermap" type="com.example.springboot.mybatisxml.entity.user"> <result column="id" property="id"/> <result column="name" property="name"/> <result column="sex" property="sex"/> <result column="password" property="password"/> <result column="des" property="des"/> </resultmap> <select id = "queryallusers" resulttype= "com.example.springboot.mybatisxml.entity.user"> select * from user </select> </mapper>
4.添加dao接口
接口的名字和映射文件的名字相同,接口中方法的名字和要调用的映射文件中的标签的id相同。
usermapper.java代码如下:
public interface usermapper { list<user> queryallusers(); }
5.添加访问控制层
usercontroller代码如下:
/** * usercontroller * * @author: java_suisui * */ @slf4j @restcontroller @requestmapping("/user") public class usercontroller { @autowired private userservice userservice; /** * 查询 所有用户 * */ @getmapping("/queryallusers") public list<user> queryallusers(){ return userservice.queryallusers(); } }
四、测试
本地打开浏览器,访问http://localhost:8080/user/queryallusers,成功后返回如下结果:
[{"id":1,"name":"张三","password":"123456","sex":0,"des":"无备注"}, {"id":2,"name":"李四","password":"123456","sex":0,"des":"无备注"}]
到此springboot整合mybatis(xml配置方式)的功能已经全部实现,有问题欢迎留言沟通哦!
完整源码地址:
推荐阅读
5.springboot中如何灵活的实现接口数据的加解密功能?
限时领取免费java相关资料,涵盖了java、redis、mongodb、mysql、zookeeper、spring cloud、dubbo/kafka、hadoop、hbase、flink等高并发分布式、大数据、机器学习等技术。
关注下方公众号即可免费领取:
下一篇: 并行编程和任务(二)
推荐阅读
-
SpringBoot系列(五)Mybatis整合完整详细版
-
DB数据源之SpringBoot+MyBatis踏坑过程(二)手工配置数据源与加载Mapper.xml扫描
-
SpringBoot+Mybatis+Durid整合多数据源的三种方式,第一种
-
springboot多数据源配置mybatis采用druid连接池对mysql,hive双数据源整合
-
SpringBoot整合Mybatis配置pagehelper分页插件
-
【SpringBoot】SpringBoot整合MyBatis,以及配置PageHelper分页插件
-
springboot 整合Mybatis步骤(有mybatis核心配置文件mybatis-config.xml的形式)
-
springBoot整合MyBatis(传统方式:带xml配置文件)
-
SpringBoot整合使用tk.mybatis配置及测试
-
Springboot整合MyBatis(配置文件版)