深入解析Spring Boot集成MyBatis的多种方式

Alt

🎈个人主页:程序员 小侯
🎐CSDN新晋作者
🎉欢迎 👍点赞✍评论⭐收藏
✨收录专栏:Java框架
✨文章内容:Spring Boot集成MyBatis
🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗

Spring Boot与MyBatis的集成为Java开发者提供了一种简便而强大的方式来访问和操作数据库。在本文中,我们将深入解析Spring Boot集成MyBatis的多种方式,包括XML配置、注解配置以及使用MyBatis Generator生成代码的方法。
在这里插入图片描述

1. XML配置方式

1.1 添加依赖

首先,我们需要在pom.xml文件中添加MyBatis和数据库驱动的依赖:

<dependencies>
    <!-- MyBatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>

    <!-- 数据库驱动,以MySQL为例 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
</dependencies>

1.2 配置数据源

application.properties中配置数据源:

spring.datasource.url=jdbc:mysql://localhost:3306/your_database
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

1.3 创建MyBatis配置文件

src/main/resources目录下创建mybatis-config.xml文件:

<!-- mybatis-config.xml -->
<configuration>
    <!-- 其他配置 -->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
        <!-- 添加其他Mapper -->
    </mappers>
</configuration>

1.4 编写Mapper接口和XML文件

创建Mapper接口和对应的XML文件:

// UserMapper.java
public interface UserMapper {
   
    List<User> getAllUsers();
    // 其他方法
}
<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
    <select id="getAllUsers" resultType="com.example.model.User">
        SELECT * FROM users
    </select>
    <!-- 其他SQL语句 -->
</mapper>

1.5 使用Mapper接口

在Service或Controller中注入Mapper并使用:

@Service
public class UserService {
   
    private final UserMapper userMapper;

    @Autowired
    public UserService(UserMapper userMapper) {
   
        this.userMapper = userMapper;
    }

    public List<User> getAllUsers() {
   
        return userMapper.getAllUsers();
    }
    // 其他方法
}

2. 注解配置方式

2.1 添加依赖

同样,添加MyBatis和数据库驱动的依赖:

<dependencies>
    <!-- MyBatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>

    <!-- 数据库驱动,以MySQL为例 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
</dependencies>

2.2 配置数据源

同XML配置方式。

2.3 使用注解配置Mapper

在Mapper接口上使用@Mapper注解:

@Mapper
public interface UserMapper {
   
    @Select("SELECT * FROM users")
    List<User> getAllUsers();
    // 其他方法
}

2.4 使用Mapper接口

同XML配置方式。

3. 使用MyBatis Generator

3.1 添加依赖

添加MyBatis Generator插件的依赖:

<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.4.0</version>
            <configuration>
                <!-- 配置文件路径 -->
                <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                <overwrite>true</overwrite>
            </configuration>
        </plugin>
    </plugins>
</build>

3.2 编写Generator配置文件

src/main/resources目录下创建generatorConfig.xml文件:

<!-- generatorConfig.xml -->
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <context id="DB2Tables" targetRuntime="MyBatis3

">
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/your_database"
                        userId="your_username"
                        password="your_password">
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <table tableName="users" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
            <property name="useActualColumnNames" value="false"/>
            <generatedKey column="id" sqlStatement="JDBC"/>
        </table>
        <!-- 其他表配置 -->
    </context>
</generatorConfiguration>

3.3 运行MyBatis Generator

运行Maven命令执行MyBatis Generator:

mvn mybatis-generator:generate

以上是三种常见的Spring Boot集成MyBatis的方式,每种方式都有其适用的场景。开发者可以根据项目需求和个人偏好选择最合适的方式。在实际项目中,可以根据项目的规模和复杂度选择合适的方式,或者根据不同的模块采用不同的集成方式。这样的灵活性使得Spring Boot与MyBatis的结合在各种场景下都能够发挥强大的作用。

🧸结尾 ❤️ 感谢您的支持和鼓励!

相关推荐

  1. 第十五章 : Spring Boot 集成MyBatis 多种方式

    2023-12-28 15:16:03       38 阅读
  2. springboot集成mybatis-plus

    2023-12-28 15:16:03       35 阅读
  3. SpringBoot集成MyBatis-Plus

    2023-12-28 15:16:03       14 阅读
  4. SpringBoot整合Mybatis遇到常见问题及解决方案

    2023-12-28 15:16:03       42 阅读
  5. springboot在线文档集成方式

    2023-12-28 15:16:03       34 阅读
  6. springboot集成mybatis 单元测试

    2023-12-28 15:16:03       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-28 15:16:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-28 15:16:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-28 15:16:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-28 15:16:03       18 阅读

热门阅读

  1. 北航人机交互复习

    2023-12-28 15:16:03       25 阅读
  2. 编程笔记 html5&css&js 008 HTML图片

    2023-12-28 15:16:03       31 阅读
  3. 在react中引用echarts

    2023-12-28 15:16:03       34 阅读
  4. Kotlin 枚举类

    2023-12-28 15:16:03       39 阅读
  5. 工具系列:TensorFlow决策森林_(6)模型预测

    2023-12-28 15:16:03       30 阅读
  6. Kotlin 密封类与接口

    2023-12-28 15:16:03       39 阅读
  7. 计算机网络的7层协议和4层协议的区别

    2023-12-28 15:16:03       38 阅读
  8. Linux:环境变量

    2023-12-28 15:16:03       32 阅读
  9. 2024 年软件工程将如何发展

    2023-12-28 15:16:03       26 阅读
  10. leetcode18. 四数之和

    2023-12-28 15:16:03       40 阅读
  11. go语言10进制与16进制转换

    2023-12-28 15:16:03       35 阅读
  12. 关于:网络安全

    2023-12-28 15:16:03       32 阅读