Springboot使用Mybatis

一、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有了更加深入的了解。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/233950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-11 17:11
下一篇 2024-12-11 17:11

相关推荐

  • 从ga角度解读springboot

    springboot作为目前广受欢迎的Java开发框架,其中的ga机制在整个开发过程中起着至关重要的作用。 一、ga是什么 ga即Group Artifacts的缩写,它是Mave…

    编程 2025-04-29
  • 理解Mybatis中的SQL Limit用法

    Mybatis是一种非常流行的ORM框架,提供了SQL映射配置文件,可以使用类似于传统SQL语言的方式编写SQL语句。其中,SQL的Limit语法是一个非常重要的知识点,能够实现分…

    编程 2025-04-29
  • SpringBoot Get方式请求传参用法介绍

    本文将从以下多个方面对SpringBoot Get方式请求传参做详细的阐述,包括URL传参、路径传参、请求头传参、请求体传参等,帮助读者更加深入地了解Get请求方式下传参的相关知识…

    编程 2025-04-27
  • SpringBoot如何设置不输出Info日志

    本篇文章将带您了解如何在SpringBoot项目中关闭Info级别日志输出。 一、为什么要关闭Info日志 在开发中,我们经常会使用Log4j、Logback等框架来输出日志信息,…

    编程 2025-04-27
  • 解决springboot中scanBasePackages无法读取子包的问题

    在使用springboot搭建项目时,可能会遇到scanBasePackages无法读取子包的问题。本文将从几个方面详细阐述如何解决这个问题。 一、问题描述 在使用Springbo…

    编程 2025-04-25
  • SpringBoot请求参数绑定

    解答:SpringBoot请求参数绑定是指将HTTP请求中的参数与Controller方法的参数绑定起来,使得参数的传递变得简单和方便。下面我们将从多个方面对SpringBoot请…

    编程 2025-04-25
  • Mybatis中update if详解

    一、if标签的基本用法 在Mybatis中使用update语句更新数据库表中的一条或多条数据,我们通常通过if标签来动态生成update语句。if标签的使用方法如下: <up…

    编程 2025-04-25
  • Mybatis-plus条件构造器

    一、可重用性 Mybatis-plus作为Mybatis的扩展工具,提供了丰富的功能让开发更加高效便捷。其中之一的条件构造器可以帮助我们构建各种查询条件,而且支持链式调用,非常适合…

    编程 2025-04-25
  • Mybatis批量插入操作

    一、基本概念 Mybatis是一种基于java的持久层框架,旨在帮助开发人员简化数据库操作。该框架提供了多种方式来执行数据库操作,其中包括批量插入。批量插入是一种在单个事务中提交多…

    编程 2025-04-25
  • MyBatis如何防止SQL注入

    MyBatis是一款开源的持久层框架,它可以简化Java应用程序中的数据持久化过程,并提供了许多有用的功能。然而,安全问题一直是Web应用程序的一大挑战,其中最严重的问题之一是SQ…

    编程 2025-04-25

发表回复

登录后才能评论