2025-03-26
编程
00
请注意,本文编写于 33 天前,最后修改于 33 天前,其中某些信息可能已经过时。

目录

在springboot中集成MyBatis
1. 添加依赖
2. 配置数据源
3. 创建 Mapper 接口和 XML 映射文件
4. 使用 Mapper
在spring中集成MyBatis
引入 MyBatis
基本使用

MyBatis 是一个优秀的持久层框架,它简化了 JDBC 的使用,使得 Java 程序与数据库之间的交互更加容易。

在springboot中集成MyBatis

MyBatis 与 Spring Boot 的集成可以通过 mybatis-spring-boot-starter 来简化配置,使得 MyBatis 能够在 Spring Boot 应用中更加方便地使用。

1. 添加依赖

首先,在你的 pom.xml 文件中添加 mybatis-spring-boot-starter 和数据库驱动的依赖。例如,如果你使用的是 MySQL 数据库,可以这样添加依赖:

xml
<dependencies> <!-- MyBatis Spring Boot Starter --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>最新版本号</version> <!-- 请替换为当前最新的版本号 --> </dependency> <!-- MySQL Connector Java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- 其他必要的依赖 --> </dependencies>

2. 配置数据源

application.properties 或者 application.yml 文件中配置数据源信息。以 application.properties 为例:

properties
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # MyBatis 配置 mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.yourproject.model

其中,mybatis.mapper-locations 指定了 MyBatis 映射文件的位置,mybatis.type-aliases-package 定义了实体类所在的包。

3. 创建 Mapper 接口和 XML 映射文件

创建 Mapper 接口,并在同一目录下创建对应的 XML 映射文件(如果需要的话)。Mapper 接口定义了数据库操作方法,而 XML 文件则包含了具体的 SQL 语句。例如:

UserMapper.java

java
package com.example.yourproject.mapper; import com.example.yourproject.model.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @Mapper public interface UserMapper { @Select("SELECT * FROM users WHERE id = #{id}") User getUserById(@Param("id") int id); }

UserMapper.xml 若你需要更复杂的查询,可以在 resources/mapper 目录下创建 UserMapper.xml 文件来编写 SQL 语句。

4. 使用 Mapper

在你的 Service 或者 Controller 中通过自动装配(@Autowired)的方式注入 Mapper 接口,然后调用其方法进行数据库操作。

java
import com.example.yourproject.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { @Autowired private UserMapper userMapper; public User findUserById(int id) { return userMapper.getUserById(id); } }

在spring中集成MyBatis

引入 MyBatis

  1. Maven 依赖:如果你的项目是基于 Maven 构建的,你可以在 pom.xml 文件中添加 MyBatis 的依赖来引入 MyBatis。

    xml
    <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version> <!-- 版本号请根据实际情况替换 --> </dependency> <!-- 如果需要与 Spring 集成,还需要加入下面的依赖 --> <dependency> <groupId>org.mybatis.spring</groupId> <artifactId>mybatis-spring</artifactId> <version>x.x.x</version> <!-- 版本号请根据实际情况替换 --> </dependency>
  2. 手动下载 JAR 包:如果项目不是基于 Maven 或 Gradle 这样的构建工具,你可以直接从 MyBatis 官网下载 JAR 包,并将其添加到项目的类路径下。

基本使用

  1. 配置文件:首先,你需要创建一个 MyBatis 的配置文件 mybatis-config.xml,用于配置 MyBatis 的运行环境,包括数据源、事务管理器等。

    xml
    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/example/mapper/UserMapper.xml"/> </mappers> </configuration>
  2. 编写 Mapper XML 文件:为每个需要操作数据库的对象编写对应的 Mapper XML 文件,定义 SQL 语句以及结果映射关系。

    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.mapper.UserMapper"> <select id="getUserById" parameterType="int" resultType="hashmap"> SELECT * FROM users WHERE id = #{id} </select> </mapper>
  3. 接口定义:针对每一个 Mapper XML 文件,可以定义相应的 Java 接口。MyBatis 可以自动将执行 SQL 并映射结果的工作绑定到这些接口方法上。

    java
    package com.example.mapper; import java.util.HashMap; public interface UserMapper { HashMap<String, Object> getUserById(int id); }
  4. SqlSessionFactory:在代码中通过 MyBatis 提供的 SqlSessionFactoryBuilder 来读取配置文件并创建 SqlSessionFactory 实例,再由 SqlSessionFactory 创建 SqlSession 实例进行数据库操作。

    java
    String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); try (SqlSession session = sqlSessionFactory.openSession()) { UserMapper mapper = session.getMapper(UserMapper.class); HashMap<String, Object> user = mapper.getUserById(1); System.out.println(user); }