图片来源网路

为啥写这篇文章呢,有人可能会说springBoot的mybatis的starter都有了写这篇文章不是多此一举吗?难道是真的吗?其实我一开始也是使用mybatis的starter的,但是当我需要配置一个让mybatis可以将执行sql语句打印出来的配置时,难到了我,所以才想和大家分享一下springBoot整合MyBatis的方法,如果大家有更好地方法,欢迎讨论。首先看一下项目的目录结构

工程的目录结构

SpringBoot整合Mybatis的思路

1.设置数据源DataSource,我们使用@ConfigurationProperties来加载yml里数据源的配置

2.配置SqlSessionFactory在里面配置加载的xml配置文件和数据源

3.使用@MapperScan来扫描加载DAO层接口

4.在yml中配置相关参数

5.mybatis与数据库对应的文件生成可以参照之前写的还在手写Mybatis的xml文件,那你就OUT了

代码实现

1.引入相关jar

org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2mysql mysql-connector-java 6.0.6com.alibaba druid 1.0.29org.projectlombok lombok 1.16.18

2.定义一个类,继承DruidDataSource,负责数据源的属性加载和初始化数据源

//为代码清晰去除相关引用@ConfigurationProperties(prefix = DataSourceSettings.PREFIX)@Datapublic class DataSourceSettings extends DruidDataSource { public static final String PREFIX = "druid.dataSource"; private String mapperLocations;}

3.设置扫描mapper的路径和初始化SqlSessionFactoryBean

//为代码清晰去除相关引用@Configuration@MapperScan(basePackages = {"com.example.demo.mapper"})@EnableConfigurationProperties(DataSourceSettings.class)public class DataSourceAutoConfiguration {//DataSourceSettings继承DruidDataSource,所以也是数据源 @Autowired DataSourceSettings settings;//SqlSessionFactoryBean相关配置 @Bean public SqlSessionFactoryBean sqlSessionFactory(ApplicationContext applicationContext) throws IOException { SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();//配置数据源 sqlSessionFactory.setDataSource(settings);//日志主要为打印SQL语句 Properties properties = new Properties(); properties.setProperty("logImpl

mybatis log4j 在日志中打印sql_SpringBoot整合MyBatis+详细打印执行SQL语句相关推荐

  1. 如何优雅的将Mybatis日志中的Preparing与Parameters转换为可执行SQL

    原文链接 疫情期间大家宅在家里是不是已经快憋出"病"了~~ 公司给开了VPN,手机电脑都能连,手机装上APP测试包,就能干活了,所以walking从2020.02.01入京以来,已 ...

  2. mybatis log4j 在日志中打印sql_MyBatis---gt;01总结

    什么是MyBatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML ...

  3. js语句连接mysql数据库_js中require()的用法----JS如何连接数据库执行sql语句或者建立数据库连接池...

    var vue = require('vue'); 引入vue的意思,commonjs的写法.node都是用require来载入模块的,可以看看webpack+vue. require()可以调用模块 ...

  4. mybatis直接执行sql语句后续之一

    在上一篇文章中,我们提到了让mybatis直接执行sql语句. http://xiabin1235910-qq-com.iteye.com/blog/1748886 接下来介绍在上一篇文章的基础上,我 ...

  5. java定时执行sql语句_spring中使用quartz动态添加定时任务执行sql

    系统用来每天插入视图数据... 一.数据库表设计 1.接口配置表(t_m_db_interface_config) 2.接口日志表(t_m_db_interface_log) 3.前端配置页面 查询页 ...

  6. [转]在EntityFramework6中执行SQL语句

    本文转自:http://www.cnblogs.com/wujingtao/p/5412329.html 在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有 ...

  7. OA系统二十:请假审批一:审批功能概述;显示【请假审批】这个内嵌界面中【待审批请假数据】的SQL语句;

    本篇博客的主要内容就是:在请假审批这个内嵌界面中,显示待审批请假数据的SQL语句: 目录 1.[请假审批]功能需要实现什么? 2.[请假审批界面]中[待审批请假数据]之:SQL语句 (1)审批列表中需 ...

  8. python中执行sql语句_python中执行sql语句

    来源:疯狂的蚂蚁的博客 总结和整理 本文介绍了 Python 操作 MYSQL.执行 SQL 语句.获取结果集.遍历结果集.取得某个字 段.获取表字段名....... (游标 对象)用于执行查询和获取 ...

  9. phpmyadmin执行mysql语句_如何在phpMyAdmin中执行sql语句

    大家使用phpMyAdmin中常遇到这样的问题:MySQL Error Message: MySQL Query Error SQL: SELECT main.*, field.* FROM ucho ...

最新文章

  1. C++智能指针及其简单实现
  2. MySQL索引类型 btree索引和hash索引的区别
  3. MySQL调优系列基础篇
  4. hdu1053 Entropy hdu2527 Safe Or Unsafe
  5. 计算机常用控温算法,常用温度控制方法原理 -解决方案-华强电子网
  6. 安卓开发替换json字符串中的数据_22个JavaScript开发技巧合集
  7. BugkuCTF-MISC题convert
  8. WordPress简洁大气自适应博客杂志类网站主题CX-MULTI
  9. k8s集群部署项目_容器交付流程介绍---K8S_Google工作笔记0059
  10. springmvc 异常001---在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案
  11. 构建LVS+Keepalived高可用群集
  12. Java基本数据类型字节长度
  13. 怎么在计算机中添加用户账户,使用net user命令在win7电脑中添加账户的步骤
  14. PMP考试须知、注意事项
  15. express实现图片上传
  16. python画抛物线_python画抛物线
  17. 泰山OFFICE技术讲座:中英文间隔,间隔以哪个字体为准?
  18. php 高德地图创建标注,自定义图标-点标记-示例中心-JS API 示例 | 高德地图API
  19. 从ERP谈到中国企业升级
  20. 一粒云盘v2.1发布

热门文章

  1. Android UI:机智的远程动态更新策略
  2. ubuntu下面如何切换virtual_box的鼠标
  3. 【linux】——环境变量
  4. Java算法之寻找旋转数组中的最小值
  5. 1000道Python题库系列分享17(17道判断题)
  6. 奇怪,有的Python函数或方法调用需要两对括号?
  7. php 连接sap rfc 乱码,[RFC] sap rfc调用时判断连接状态
  8. python获取表单数据的代码_使用flask和python从html表单获取表单数据
  9. 华为服务器gpu卡型号,gpu服务器与配置
  10. android日历长按拖拽,CalendarView