Spring Boot 与 mybatis配置方法

发布时间 - 2026-01-11 01:46:30    点击率:

1.首先,spring boot 配置mybatis需要的全部依赖如下:

<!-- Spring Boot 启动父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
<!-- spring boot 项目启动必须引入的web依赖 -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <version>1.5.1.RELEASE</version>
</dependency>    
 <!-- Spring Boot Mybatis 依赖 -->
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.2.0</version>
</dependency>
 <!-- oracle的数据库驱动包 -->
<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc6</artifactId>
  <version>11.2.0.4.0-atlassian-hosted</version>
</dependency>

这里主要说一下上边的数据库驱动包,oracle和mysql引入不同的依赖,千万不要忘记。如果忘记引入,会报找不到驱动类异常。

2.然后,在application.properties 配置文件里添加如下内容:

##数据库连接信息
spring.datasource.url=jdbc:oracle:thin:@//192.168.1.171:1521/orcl
spring.datasource.username=znxd
spring.datasource.password=znxd
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
##指向mapper的xml文件位置
mybatis.mapper-locations=classpath:mapper/*Mapper.xml

上边以spring.datasource 开头的内容其实有很多,具体,在application.properties 文件里输入后看看能点出的内容就知道了。

  springboot默认会把spring.datasource开头的信息收纳,进行DataSource对象的配置,进而进行sqlSessionFactory的配置等相关数据库连接的配置,所以其他很多人会说写什么配置类,那些我感觉没有必要的。(配置druid需要配一个@Bean,下一篇会说到)

当然如果是特别详细的,而在application.properties文件里又通过spring.datasource 点不出相关的配置,那可能需要配置类什么的。

  mybatis.mapper-locations 所指向的位置是从src/main/resource开始的,前边需要加上classpath,它指向的是你的mapper.xml文件放置的位置。

3.我是mybatis通过数据库表逆向工程生成的实体类、mapper等,先把项目具体的放置结构贴出来如下:

对于上图的解释如下:

启动类必须放在项目中相对其他类的最高处,前边文章说过,spring boot没有传统的spring 项目配置的<bean> 标签,它扫描bean的方式就是从启动类依次向下扫描进默认的内置tomcat容器的。

上图service放置的位置比其实现类放置的位置高,如果有两个service A和B,实现类里有Aimpl和Bimpl,如果有Aimpl调用B的情况,有可能会在启动容器报“a field named ‘B' not found”貌似这种错误,说明容器扫描顺序有误。

这种情况的最好的解决办法,就应该像我将service放在高处,容器启动先扫描进service,然后再扫描impl,这样在实现类扫描的时候就肯定能找到service,也就不会出现这种错误了。

另一种解决办法是在引入service时多添加一个注解:@Lazy

@Autowired 
@Lazy //这样就会延迟加载,上图不需要,这里只是解释这注解 
LogsUserActiveMapper logsUserActiveMapper;

总之,如果出现调用与被调用关系,一定要记得,被调用者要首先被扫描进spring boot内置容器,也就是被调用者的包位置要放的较高一些(位置至少也待相平)。

  3.service实现类上需要加一个@Service 注解。这个可能不需要,我一直没有试试。

  4.spring boot+mybatis除了这些要求,还需要在启动类处添加一个注解@MapperScan,如下:

package cloud.kafka;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
@EnableTransactionManagement //如果mybatis中service实现类中加入事务注解,需要此处添加该注解
@MapperScan("cloud.kafka.mapper") //扫描的是mapper.xml中namespace指向值的包位置
public class KafkaLogApplication {
  public static void main(String[] args){
    SpringApplication.run(KafkaLogApplication.class, args);
  }
}

如下是我的mapper.xml里namespace的值

<mapper namespace="cloud.kafka.mapper.LogsUserActiveMapper" >

这样就完成mybatis的配置了,下一篇会说spring boot+mybatis事务配置、druid配置、分页插件配置。

以上所述是小编给大家介绍的Spring Boot 与 mybatis配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# spring  # boot  # mybatis  # 配置  # springboot与mybatis整合实例详解(完美融合)  # 详解spring boot mybatis全注解化  # Spring Boot MyBatis 连接数据库配置示例  # Spring Boot整合MyBatis连接Oracle数据库的步骤全纪录  # Spring Boot 集成Mybatis实现主从(多数据源)分离方案示例  # 详解Spring boot上配置与使用mybatis plus  # springboot + mybatis配置多数据源示例  # spring boot mybatis枚举映射示例代码  # 的是  # 放在  # 上图  # 不需要  # 是从  # 会说  # 下一篇  # 会报  # 解决办法  # 小编  # 我是  # 就会  # 是在  # 最好的  # 也就  # 不出  # 有可能  # 在此  # 有很多  # 调用者 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: javascript日期怎么处理_如何格式化输出  Laravel如何实现API速率限制?(Rate Limiting教程)  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  EditPlus 正则表达式 实战(3)  Laravel定时任务怎么设置_Laravel Crontab调度器配置  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  如何在阿里云虚拟主机上快速搭建个人网站?  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  EditPlus中的正则表达式 实战(2)  如何在阿里云高效完成企业建站全流程?  java中使用zxing批量生成二维码立牌  如何快速搭建高效简练网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  Android实现代码画虚线边框背景效果  Laravel中的withCount方法怎么高效统计关联模型数量  浅谈redis在项目中的应用  如何快速打造个性化非模板自助建站?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何用搬瓦工VPS快速搭建个人网站?  javascript中对象的定义、使用以及对象和原型链操作小结  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  韩国服务器如何优化跨境访问实现高效连接?  Laravel如何使用Sanctum进行API认证?(SPA实战)  Android自定义listview布局实现上拉加载下拉刷新功能  JS碰撞运动实现方法详解  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  Laravel怎么清理缓存_Laravel optimize clear命令详解  如何快速搭建支持数据库操作的智能建站平台?  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  🚀拖拽式CMS建站能否实现高效与个性化并存?  如何在万网自助建站平台快速创建网站?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Laravel如何处理异常和错误?(Handler示例)  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何快速上传自定义模板至建站之星?  详解Huffman编码算法之Java实现  Laravel如何使用Collections进行数据处理?(实用方法示例)  如何用好域名打造高点击率的自主建站?  Laravel如何实现数据库事务?(DB Facade示例)  再谈Python中的字符串与字符编码(推荐)  长沙企业网站制作哪家好,长沙水业集团官方网站?