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中的字符串与字符编码(推荐)
长沙企业网站制作哪家好,长沙水业集团官方网站?
上一篇:Linux权限管理最全解析
上一篇:Linux权限管理最全解析

