Spring Boot整合MybatisPlus和Druid
在Java中 , 我比较ORM熟悉的只有Hibernate和Mybatis,其他的并未实践使用过 , 在这二者之间我更喜欢Mybatis,因为它精简、灵活(毕竟我是上年纪的程序员 , 喜欢自己写SQL) 。
刚才有提到Mybatis , 但是这里的重点是介绍Mybatis-Plus , 它是Mybatis的增强版 , 如果要了解Mybatis的细节的话请点击这里 。
简介据MyBatis-Plus官网介绍 , MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具 , 在 MyBatis 的基础上只做增强不做改变 , 为简化开发、提高效率而生 。 这看上去挺香的 , 所以必须得尝尝 。 这里涉及到的环境、组件如下:
- MariaDB 10.3.10
- Windows 10
- IntelliJ IDEA 2019.3.1
- 64 bit JDK 1.8.0_231
- Spring Boot 2.2.3.RELEASE
- Lombok 1.18.10
- Knife4j 2.0.1
- Mybatis-plus 3.3.0
- Druid
引入依赖包首先 , 我们得引入Mybatis-Plus和mariadb-java-client等几个包:
2020-01-20 09:51:32.021 DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:143) 2CNU7X5OLAUE004 --- [main] c.e.d.m.U.insert: ==>Preparing: INSERT INTO users ( username, password, enabled ) VALUES ( ?, ?, ? ) 2020-01-20 09:51:32.036 DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:143) 2CNU7X5OLAUE004 --- [main] c.e.d.m.U.insert: ==> Parameters: bbbb(String), aaaa(String), 1(Integer)
在application.yml配置我们的数据库连接信息:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
这里我新建一个名为User的实体,具体属性如下:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
新建一个UserMapper接口:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
在我们的启动类加上@MapperScan来指定我们的Mapper扫描目录:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
我新建一个单元测试 , 来试试我们的UserMapper的selectList:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
会看到Mybatis-Plus为我取出的数据:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
我们再试试Mybatis-Plus为什么封装的Insert:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
可以看到日志:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
其他高端操作请阅读相关文档Spring Boot整合Druid数据库连接池在Spring Boot 2.X默认使用了HikariCP作为数据库连接池,据说hikariCP性能最高(hikariCP>druid>dbcp>c3p0),但是我更喜欢Druid全面的功能和毫不逊色的性能 。 开撸吧 , 首先当然还是引入我们的需要的Druid依赖包:
spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
接下来就是修改我们的的application.yml配置:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
可以看到我们的日志信息为:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
现在我们增加一个Controller来获取Druid的监控数据:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
访问http://localhost:8080/druid/status可以得到一个json:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
我们还可以打开stat-view-servlet,需要加入如下配置:spring:datasource:druid:stat-view-servlet:enabled: truelogin-username: adminlogin-password: admin
这是启动后 , 访问http://localhost:8080/druid/index.html页面就会跳转到登录页面,输入我们配置的用户名和密码admin/admin:文章插图
文章插图
文章插图
可以看到Druid提供的功能是比较全面的 , 另外在第三张图可以看到我们的相关参数 , 大家也可以参照这个来配置连接池 。
- 专注于扩展|Yearn整合Sushiswap,AC的“DeFi宇宙”已初露端倪
- 互联网|60亿引战整合重组互联网平台业务,苏宁易购能否弯道超车?
- Spring security CSRF 跨域访问限制问题
- 资源|共享门店系统如何整合商家周边资源助力获客引流?
- Spring Boot搭建的一个在线文件预览系统
- 面试官:问你一个,Spring事务是如何传播的?
- 对Spring MVC接口进行Mock测试
- Spring Cloud Alibaba之 Sentinel
- SpringBoot+MyBatis+MySQL读写分离实现
- SpringBoot构造流程源码分析:Web应用类型推断