一、Spring Boot使用Mybatis配置
首先需要在maven中添加mybatis依赖:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency>
接着,在application.properties文件中配置Mybatis相关属性:
mybatis.config-location=classpath:mybatis-config.xml mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.demo.domain
其中,mybatis.config-location指定了Mybatis的配置文件路径,mybatis.mapper-locations指定了Mybatis的Mapper文件路径,mybatis.type-aliases-package指定了实体类的包路径。
二、Spring Boot使用Mybatis连接MySQL
在使用Mybatis之前,需要先配置MySQL的连接信息。可以在application.properties中设置相关属性:
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.username=root spring.datasource.password=123456
其中,spring.datasource.url指定了MySQL的连接地址和端口号,spring.datasource.driver-class-name指定了MySQL的驱动名,spring.datasource.username和spring.datasource.password指定了MySQL连接的用户名和密码。
接着,我们就可以编写Mapper映射文件和Dao层代码进行MySQL数据库的操作了。
三、Spring Boot使用Mybatis存null数据
在操作MySQL数据库时,如果某个字段的值为null,那么Mybatis在执行插入或更新操作时会将该字段的值设置为NULL,而不是直接忽略该字段。如果不希望将null值存入数据库中,可以在Mapper映射文件中使用sqlProvider方式指定非空字段。
<insert id="insertUser" parameterType="User"> <selectKey keyProperty="id" resultType="int" order="AFTER"> SELECT LAST_INSERT_ID() </selectKey> insert into user <set> <if test="name != null"> name = #{name}, </if> <if test="age != null"> age = #{age}, </if> <if test="address != null"> address = #{address}, </if> </set> </insert>
在上述代码中,<if>标签中判断了字段的值是否为null,如果不为null则插入该字段,否则不插入。
四、Spring Boot使用Mybatis缓存
Mybatis默认开启了一级缓存,无需任何配置即可使用,但是一级缓存的作用范围只限于同一个SqlSession。对于不同的SqlSession,无法共享缓存资源。Mybatis也提供了二级缓存的功能,可以自行选择是否启用。
在application.properties中配置如下缓存属性:
# 启用缓存 mybatis.configuration.cache-enabled=true # 指定缓存类型为Ehcache mybatis.configuration.cache-enabled-type=EHCACHE
在Mapper映射文件的<mapper>标签中使用cache配置指定缓存,例如:
<cache eviction="FIFO" flushInterval="60000" size="512"> </cache>
其中,eviction指定了缓存的淘汰策略,flushInterval指定了缓存的刷新时间间隔,size指定了缓存容量。
五、Spring Boot使用的技术
Spring Boot结合Mybatis可以使用很多其它技术栈来实现更加完善的功能,例如:
1. Spring Boot结合FreeMarker模板引擎使用
首先需要在maven中添加FreeMarker依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
接着,在application.properties中配置FreeMarker相关属性:
spring.freemarker.template-loader-path=classpath:/templates/ spring.freemarker.suffix=.ftl
其中,spring.freemarker.template-loader-path指定了模板文件的路径,spring.freemarker.suffix指定了模板文件的后缀名。
通过在Controller中返回ModelAndView对象,就可以使用FreeMarker模板引擎来渲染页面了。
2. Spring Boot结合AOP使用
Spring Boot结合AOP可以很方便地实现类似于日志、事务等方面的功能。
首先需要在maven中添加AOP依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
接着,在需要添加切面的类上使用@Aspect注解,并定义相关的切点和通知方法即可实现AOP功能。
3. Spring Boot结合注解使用
Spring Boot结合注解可以更加简化开发过程,也更加直观。
通过在Controller中使用@RestController注解、在Mapper接口中使用@Mapper注解等方式,可以大大简化代码的编写。
六、Spring Boot使用Mybatis总结
本文对Spring Boot结合Mybatis的相关使用做了详细的阐述,包括Mybatis的配置、MySQL连接、存null数据、缓存以及结合其它技术栈使用的方法等。通过本文的学习,相信读者已经对Spring Boot如何使用Mybatis有了更加深入的了解。