Mybatis-Plus&Druid數(shù)據(jù)源使用及解讀
一、Mybatis-Plus簡介
什么是Mybatis-Plus
Mybatis-Plus是一個Mybatis(OPENS NEW WINDOW)的增強工具,在Mybatis的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)。
Mybatis-Plus的優(yōu)勢
- 無侵入:只做增強不做改變,引入它不會對現(xiàn)有工程產(chǎn)生影響。
- 損耗?。簡蛹磿詣幼⑷牖綾urd,性能基本無損耗,直接面向?qū)ο蟛僮鳌?/li>
- 強大的crud操作:內(nèi)置通用mAPPER、通用sERVICE,僅僅通過少量配置即可實現(xiàn)單表大部分crud操作,更有強大的條件構(gòu)造器,滿足各類使用需求。
- 支持lAMBDA形式調(diào)用:通過 lAMBDA 表達式,方便的編寫各類查詢條件,無需再擔心字段寫錯
- 支持主鍵自動生成:支持多達4種主鍵策略(內(nèi)含分布式唯一 id 生成器 - sEQUENCE),可自由配置,完美解決主鍵問題。
- 支持aCTIVErECORD模式:支持 aCTIVErECORD 形式調(diào)用,實體類只需繼承 mODEL 類即可進行強大的 crud 操作。
- 支持自定義全局通用操作:支持全局通用方法注入( WRITE ONCE, USE ANYWHERE )。
- 內(nèi)置代碼生成器:采用代碼或者 MAVEN 插件可快速生成 MAPPER 、 MODEL 、 SERVICE 、 CONTROLLER 層代碼,支持模板引擎,更有超多自定義配置等您來使用。
- 內(nèi)置分頁插件:基于 Mybatis物理分頁,開發(fā)者無需關(guān)心具體操作,配置好插件之后,寫分頁等同于普通 List查詢。
- 內(nèi)置性能分析插件:可輸出 sQL 語句以及其執(zhí)行時間,建議開發(fā)測試時啟用該功能,能快速揪出慢查詢。
Mybatis-Plus的框架結(jié)構(gòu)

二、Spring-Boot整合Mybatis-Plus入門
創(chuàng)建項目,添加依賴
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>application.properties相關(guān)配置
spring:
#?????
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/crm?useUnicode=true&characterEncoding=utf-8
username: root
password: 123456
logging:
level:
root: warn
com.bdqn.demo.mapper: trace
pattern:
console: '%p%m%n'編寫實體類
@Data
@TableName("sys_user")
public class User implements Serializable {
@TableId(type = IdType.AUTO)
@TableField("usr_id")
private Long usrId;
@TableField("usr_name")
private String usrName;
private String usrPassword;
private Long usrRoleId;
private Long usrFlag;編寫Mapper接口
public interface UserMapper extends BaseMapper<User> {
}測試
@SpringBootTest
class SpringBootT369PlusApplicationTests {
@Resource
private UserMapper userMapper;
@Test
public void testSelectById() { //查詢主鍵
User user = userMapper.selectById(2L);
System.out.println("usrName:" + user.getUsrName());
}
}三、Druid數(shù)據(jù)源簡介
概念與作用
Druid數(shù)據(jù)源是一款高性能、穩(wěn)定、安全的數(shù)據(jù)源中間件,它主要用于Java應用程序中。
Druid數(shù)據(jù)源兼容多種數(shù)據(jù)庫,如MySQL、Oracle、PostqreSQl等,可以為開發(fā)者提供一致、可靠的數(shù)據(jù)訪問服務。
特點與優(yōu)勢
Druid數(shù)據(jù)源具有以下特點和優(yōu)勢:
- 高性能:Druid數(shù)據(jù)源在性能上具有明顯優(yōu)勢,通過多種優(yōu)化策略,如二級緩存、連接池等,提高了數(shù)據(jù)訪問效率
- 穩(wěn)定可靠:Druid數(shù)據(jù)源在眾多項目中得到了廣泛應用,具有較高的穩(wěn)定性和可靠性。
- 安全:Druid數(shù)據(jù)源支持加密和驗證機制,保證了數(shù)據(jù)傳輸?shù)陌踩浴?/li>
- 易用性:Druid數(shù)據(jù)源提供了豐富的API和配置項,方便開發(fā)者進行定制和擴展。
Druid數(shù)據(jù)源的使用
引入依賴
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>application.properties相關(guān)配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/crm?useUnicode=true&characterEncoding=utf-8
username: root
password: 123456
type: com.alibaba.druid.pool.DruidDataSource #??????Druid???
druid:
#初始化大小,最小,最大連接數(shù)
initial-size: 3
max-active: 10
min-idle: 3
#配置獲取連接等待超時的時間
max-wait: 60000
#監(jiān)控后臺賬號和密碼
stat-view-servlet-log-username: admin
stat-view-servlet-log-password: admin
#配置StatFilter
filter-stat-log-slow-sql: true
filter-stat-slow-sql-millis: true在以前項目基礎(chǔ)上,增加對Druid連接池配置,以及SQL監(jiān)控的配置,druid-spring-boot-starter默認情況下開啟StatDilter的監(jiān)控功能。
配置完成后,直接啟動項目訪問地址:http://localhost:8080/druid即可
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中MyBatis-Plus 查詢時排除某些字段的操作方法
這篇文章主要介紹了SpringBoot中MyBatis-Plus 查詢時排除某些字段的操作方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
SpringBoot2如何集成Elasticsearch6.x(TransportClient方式)
這篇文章主要介紹了SpringBoot2如何集成Elasticsearch6.x(TransportClient方式)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05

