存储过程以及高级映射
发布时间:2025-06-24 18:01:54 作者:北方职教升学中心 阅读量:728
不过,对于MyBatis的集成,初始创建时不需要专门添加MyBatis相关依赖,我们后续手动添加。环境准备
(一)创建Spring Boot项目
- 可以使用Spring Initializr(https://start.spring.io/)来创建一个基础的Spring Boot项目。例如:
@Servicepublic class UserService { @Autowired private UserMapper userMapper; @Transactional public int addUser(User user) { // 一些业务逻辑判断等操作 int result = userMapper.insertUser(user); // 如果插入成功后还有其他操作,如更新相关联的数据等 return result; }}
- 这样,如果在addUser方法中的任何一个数据库操作出现异常,整个事务都会回滚,保证数据的一致性。基于Spring的生产级应用程序的框架,它简化了Spring应用的初始搭建以及开发过程。
(二)添加MyBatis依赖
- 在项目的pom.xml(如果是Maven项目)中添加MyBatis和相关数据库驱动的依赖。

二、例如: public class UserService { @Autowired private UserMapper userMapper; public List<User> getUsersByPage(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); return userMapper.selectAllUsers(); }}
通过以上的配置和操作步骤,就可以在Spring Boot项目中成功地集成和使用MyBatis进行高效的数据持久化操作,无论是简单的CRUD操作还是涉及到高级功能如事务管理、
MyBatis是一款优秀的持久层框架,它支持定制化SQL、
- 如果要在某个Service方法上添加事务管理,可以使用@Transactional注解。
- 内容如下:
<?xml version="1.0" encoding="UTF - 8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis - 3.dtd"><mapper namespace="com.example.demo.mapper.UserMapper"> <select id="selectUserById" resultMap="userResultMap"> SELECT * FROM user WHERE id = #{id} </select> <insert id="insertUser"> INSERT INTO user (username, password) VALUES (#{username}, #{password}) </insert> <update id="updateUser"> UPDATE user SET username = #{username}, password = #{password} WHERE id = #{id} </update> <delete id="deleteUserById"> DELETE FROM user WHERE id = #{id} </delete> <resultMap id="userResultMap" type="com.example.demo.entity.User"> <id property="id" column="id"/> <result property="username" column="username"/> <result property="password" column="password"/> </resultMap></mapper>
- 这里的namespace属性的值要与对应的Mapper接口的全限定名相同。
(三)Mapper XML文件创建(如果使用XML方式)
- 如果不使用注解方式编写SQL语句,而是使用XML文件,则需要创建Mapper XML文件。例如,可以使用PageHelper插件来实现分页功能。
- 对于MyBatis本身:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis - spring - boot - starter</artifactId> <version>2.2.2</version></dependency>
- 如果使用MySQL数据库,添加MySQL驱动依赖:
<dependency> <groupId>mysql</groupId> <artifactId>mysql - connector - java</artifactId> <version>8.0.26</version></dependency>
三、缓存和插件的使用等。(二)配置MyBatis的插件
- MyBatis允许使用插件来扩展其功能。
五、七、
(一)配置数据源
- 在Spring Boot的配置文件(application.properties或者application.yml)中配置数据源相关信息。高级配置
(一)配置MyBatis的缓存
- MyBatis提供了一级缓存和二级缓存。事务管理
- 在Spring Boot中管理MyBatis的事务非常方便。
- 如果使用application.properties:
spring.datasource.url = jdbc:mysql://localhost:3306/mydb?useSSL = false&serverTimezone = UTCspring.datasource.username = rootspring.datasource.password = your_passwordspring.datasource.driver - class - name = com.mysql.cj.jdbc.Driver
- 如果使用application.yml:
spring: datasource: url: jdbc:mysql://localhost:3306/mydb?useSSL = false&serverTimezone = UTC username: root password: your_password driver - class - name: com.mysql.cj.jdbc.Driver
四、刷新间隔(flushInterval)、缓存大小(size)和是否只读(readOnly)等。MyBatis配置
(一)实体类创建
- 根据数据库表结构创建对应的实体类。
六、
在Mapper XML文件中配置二级缓存: <?xml version="1.0" encoding="UTF - 8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis - 3.dtd"><mapper namespace="com.example.demo.mapper.UserMapper"> <cache eviction="LRU" flushInterval="60000" size="512" readOnly="true"/> <!-- 其他SQL语句定义等 --></mapper>
这里的<cache>标签用于配置二级缓存的相关属性,如缓存的清除策略(eviction)、