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

二、Spring-Boot整合Mybatis-Plus入門
創(chuàng)建項(xià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'編寫實(shí)體類
@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> {
}測(cè)試
@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ù)源簡(jiǎn)介
概念與作用
Druid數(shù)據(jù)源是一款高性能、穩(wěn)定、安全的數(shù)據(jù)源中間件,它主要用于Java應(yīng)用程序中。
Druid數(shù)據(jù)源兼容多種數(shù)據(jù)庫(kù),如MySQL、Oracle、PostqreSQl等,可以為開發(fā)者提供一致、可靠的數(shù)據(jù)訪問服務(wù)。
特點(diǎn)與優(yōu)勢(shì)
Druid數(shù)據(jù)源具有以下特點(diǎn)和優(yōu)勢(shì):
- 高性能:Druid數(shù)據(jù)源在性能上具有明顯優(yōu)勢(shì),通過多種優(yōu)化策略,如二級(jí)緩存、連接池等,提高了數(shù)據(jù)訪問效率
- 穩(wěn)定可靠:Druid數(shù)據(jù)源在眾多項(xiàng)目中得到了廣泛應(yīng)用,具有較高的穩(wěn)定性和可靠性。
- 安全:Druid數(shù)據(jù)源支持加密和驗(yàn)證機(jī)制,保證了數(shù)據(jù)傳輸?shù)陌踩浴?/li>
- 易用性:Druid數(shù)據(jù)源提供了豐富的API和配置項(xiàng),方便開發(fā)者進(jìn)行定制和擴(kuò)展。
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
#配置獲取連接等待超時(shí)的時(shí)間
max-wait: 60000
#監(jiān)控后臺(tái)賬號(hào)和密碼
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在以前項(xiàng)目基礎(chǔ)上,增加對(duì)Druid連接池配置,以及SQL監(jiān)控的配置,druid-spring-boot-starter默認(rèn)情況下開啟StatDilter的監(jiān)控功能。
配置完成后,直接啟動(dòng)項(xiàng)目訪問地址:http://localhost:8080/druid即可
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot使用Apache?Tika檢測(cè)敏感信息
Apache?Tika?是一個(gè)功能強(qiáng)大的內(nèi)容分析工具,它能夠從多種文件格式中提取文本、元數(shù)據(jù)以及其他結(jié)構(gòu)化信息,下面我們來看看如何使用Apache?Tika檢測(cè)敏感信息從而實(shí)現(xiàn)數(shù)據(jù)泄露防護(hù)吧2025-01-01
Spring AOP在web應(yīng)用中的使用方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Spring AOP在web應(yīng)用中的使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring AOP具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法
這篇文章主要介紹了SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
JAVA熔斷和降級(jí)真實(shí)關(guān)系的圖文詳解
這篇文章主要介紹了Java熔斷和降級(jí)的關(guān)系,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
SpringBoot2如何集成Elasticsearch6.x(TransportClient方式)
這篇文章主要介紹了SpringBoot2如何集成Elasticsearch6.x(TransportClient方式)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Java開發(fā)SSM框架微信支付的實(shí)現(xiàn)
這篇文章主要介紹了Java開發(fā)SSM框架微信支付的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10

