在Spring Boot中整合MyBatis

这篇具有很好参考价值的文章主要介绍了在Spring Boot中整合MyBatis。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第1步:添加依赖:
在pom.xml文件中添加MyBatis和MySQL JDBC驱动的依赖。如果你使用的是Maven,配置如下:

   <dependencies>
       <!-- Spring Boot Starter Data JPA 可能已经包含了 spring-boot-starter-data-jdbc -->
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-data-jdbc</artifactId>
       </dependency>

       <!-- MyBatis 以及 MyBatis-Spring 的依赖 -->
       <dependency>
           <groupId>org.mybatis.spring.boot</groupId>
           <artifactId>mybatis-spring-boot-starter</artifactId>
           <version>2.2.0</version> <!-- 根据实际情况选择最新版本 -->
       </dependency>

       <!-- MySQL JDBC Driver -->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <scope>runtime</scope>
       </dependency>
   </dependencies>

第2步:配置数据源 DataSource:
在application.properties或application.yml文件中配置数据库连接信息:

   spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
   spring.datasource.username=root
   spring.datasource.password=mypassword
   spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

第3步:(可选)配置MyBatis全局配置文件:
如果你需要自定义MyBatis的全局配置,可以创建一个mybatis-config.xml并将其放在类路径下,然后在Spring Boot配置中指定该文件的位置:

   mybatis.config-location=classpath:mybatis-config.xml

第4步:编写实体类(POJOs):

第5步:编写Mapper接口及映射文件:
创建一个StudentsMapper.java接口,并声明对应的方法。
创建一个StudentsMapper.xml 文件放在src/main/resources/mapper/目录下。

第6步:在SpringBoot主类上或者单独的配置类上使用@MapperScan注解来自动扫描并注入Mapper接口。
主类

   @SpringBootApplication
   @MapperScan("com.example.myapp.mapper") // 替换为你的Mapper接口所在的包名
   public class MyAppApplication {
       public static void main(String[] args) {
           SpringApplication.run(MyAppApplication.class, args);
       }
   }

单独的配置类

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;
import java.util.Properties;

@Configuration
@MapperScan(basePackages = "com.example.myapp.mapper") // 指定Mapper接口所在的包名
public class MyBatisConfig {

    @Autowired
    private DataSource dataSource; // 注入数据源

    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);

        // 如果有全局配置文件或映射文件路径需要指定,可以添加如下配置
        factoryBean.setConfigLocation(new ClassPathResource("mybatis-config.xml"));
        factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));

        // 添加自定义属性等
        Properties properties = new Properties();
        properties.setProperty("mybatis.configuration.mapUnderscoreToCamelCase", "true");
        factoryBean.setConfigurationProperties(properties);

        return factoryBean.getObject();
    }

    // 可选:配置事务管理器
    // @Bean
    // public PlatformTransactionManager transactionManager(SqlSessionFactory sqlSessionFactory) {
    //     return new SqlSessionFactoryTransactionManager(sqlSessionFactory);
    // }
}

@MapperScan注解则会告诉Spring去com.example.myapp.mapper这个包及其子包下查找所有带有@Mapper注解的接口,并将它们注册为Spring Bean

必须要加 @Mapper 吗?
不是绝对必要,但是,为了更好的可读性和明确性,以及在代码重构时减少错误的可能性,强烈建议在所有的Mapper接口上都使用@Mapper注解。此外,在一些情况下,如单元测试中直接实例化Mapper接口时,@Mapper注解是必须的,因为它可以让Spring通过注解处理器自动处理依赖注入。

如果不使用@Mapper注解,要满足如下2个条件
1、 需要确保不带@Mapper注解的Mapper接口位于@MapperScan指定的包及其子包下。
例如,如果@MapperScan(basePackages = "com.example.project.mapper"),那么所有的非注解式Mapper接口必须在这个包或者其子包内,如com.example.project.mapper.StudentMapper

2、MyBatis会根据接口的全限定类名来查找对应的XML映射文件。
例如,如果你有一个名为com.example.project.mapper.StudentMapper的Mapper接口,那么其对应的XML映射文件应该如下:

<mapper namespace="com.example.project.mapper.StudentMapper">
    <!-- SQL语句和结果映射定义 -->
    <select id="selectStudentById" resultType="com.example.project.entity.Student">
        SELECT * FROM students WHERE id = #{id}
    </select>
    
    <!-- 其他SQL语句定义... -->
</mapper>

在这个例子中,namespace属性值为com.example.project.mapper.StudentMapper,与Java接口的全限定类名完全一致。通过这种方式,MyBatis能够正确地将XML中的SQL语句结果映射与Mapper接口的方法对应起来。即使在不使用@Mapper注解的情况下,只要保证接口名称XML映射文件的命名以及namespace属性的设置遵循上述规则,MyBatis也能正确识别并处理这些接口方法。文章来源地址https://www.toymoban.com/news/detail-820935.html

到了这里,关于在Spring Boot中整合MyBatis的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot 整合MyBatis(超详细)

    😀前言 本篇博文关于Spring Boot 整合MyBatis,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉 💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰 如果文章

    2024年02月11日
    浏览(42)
  • Spring Boot 整合MyBatis-Plus

    😀前言 本篇博文是关于Spring Boot 整合MyBatis-Plus的,希望你能够喜欢😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉 💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰

    2024年02月11日
    浏览(55)
  • Spring Boot3整合MyBatis Plus

    目录 1.前置条件 2.导坐标 3.配置数据源 4.mybatis-plus基础配置 5.配置mapper扫描路径 6.MyBatis Plus代码生成器整合 1.导坐标 2.编写代码生成逻辑 7.整合Druid连接池 已经初始化好一个spring boot项目且版本为3X,项目可正常启动 初始化教程: 新版idea创建spring boot项目-CSDN博客 https://blog

    2024年01月23日
    浏览(49)
  • Spring Boot整合MyBatis-Plus

    引言 在现代软件开发中,我们经常需要处理大量的数据。为了有效地管理这些数据,我们需要使用一些强大的框架。其中,Spring Boot和MyBatis-Plus是两个非常流行的框架。Spring Boot是一个基于Spring的开源Java框架,可以用于创建独立的、生产级别的Spring应用。MyBatis-Plus是一个MyB

    2024年01月19日
    浏览(56)
  • 【Spring Boot】数据库持久层框架MyBatis — Spring Boot构建MyBatis应用程序

    Spring Boot是用于快速构建Spring应用程序的框架。MyBatis是一种Java持久化框架,可以帮助开发人员轻松地管理数据库。将Spring Boot与MyBatis结合使用可以使开发人员更容易地创建和管理数据库应用程序。 以下是使用Spring Boot构建MyBatis应用程序的步骤: 添加MyBatis依赖项:在项目的

    2024年02月10日
    浏览(53)
  • Spring Boot整合Mybatis配置多数据源

    在之前的事件管理系统博客中有提到动态的多数据源配置 工作中难免需要做几个工具方便自己偷懒,加上之前的挡板,数据源肯定没法单一配置,所以需要多数据源配置。这里介绍两种配置:动态数据源和固定数据源模式。这两种我在目前的工作的工具开发中都有用到。 M

    2024年01月23日
    浏览(68)
  • spring boot3整合mybatis-plus

    添加依赖 配置属性信息 编写业务逻辑测试代码 配置mybatis-plus分页插件 配置mybatis-plus之属性自动填充 如图所示 1、添加依赖 2、配置属性 3、编写测试代码 4、XML文件 5、测试数据是否能走通

    2024年03月12日
    浏览(57)
  • [Spring Boot + MyBatis + MySQL框架搭建]

    目录 🐉创建一个新的Spring Boot项目 🐉配置文件 🐉application.properties配置: 🐉创建实体类 🐉创建Mapper接口 🐉创建Mapper XML文件 🐉创建Service和Controller 🐉创建一个Controller类,用于处理HTTP请求和响应。在src/main/java目录下创建一个名为“com.example.demo.controller”的包,并在其中

    2024年02月11日
    浏览(41)
  • 【Spring Boot】数据库持久层框架MyBatis — MyBatis简介

    本节首先会介绍什么是ORM、什么是MyBatis、MyBatis的特点以及核心概念,最后介绍MyBatis是如何启动、如何加载配置文件的? ORM(Object Relational Mapping,对象关系映射)是为了解决面向对象与关系数据库存在的互不匹配现象的一种技术。简单地说,ORM通过使用描述对象和数据库之

    2024年02月11日
    浏览(44)
  • Spring Boot中整合MyBatis(基于xml方式&基于注解实现方式)

    在Spring Boot中整合MyBatis时,你需要导入JDBC(不需要手动添加)、Druid的相关依赖、MySQL相关依赖。 JDBC依赖:在Spring Boot中整合MyBatis时,并不需要显式地添加JDBC的包依赖。这是因为,当你添加 mybatis-spring-boot-starter 依赖时,它已经包含了对JDBC的依赖。 mybatis-spring-boot-starter 是

    2024年02月15日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包