MyBatis-Plus 與Druid 數(shù)據(jù)源操作
1. SpringBoot 集成 MyBatis-Plus
(1) MyBatis-Plus 簡介
MyBatis-Plus 是對 MyBatis 的增強(qiáng)工具,簡化了開發(fā)流程,減少了手動(dòng)編寫 SQL 的工作量。它提供了豐富的 CRUD 操作和分頁功能,大大提高了開發(fā)效率。核心目標(biāo)是“更少的代碼,更多的功能”
MyBatis-Plus 的主要特性包括:
- 無需手寫 CRUD 操作:自動(dòng)實(shí)現(xiàn)基本的 CRUD 操作,減少代碼冗余
- 擴(kuò)展功能:分頁插件、邏輯刪除、性能分析插件等,使開發(fā)更高效
- 強(qiáng)大的查詢構(gòu)造器:通過 Lambda 表達(dá)式靈活構(gòu)建查詢條件
(2) Lombok 簡介和安裝
Lombok 是一個(gè) Java 庫,通過注解簡化代碼,特別是在定義實(shí)體類時(shí)可以自動(dòng)生成 getter/setter
方法、toString
、equals
、hashCode
等
安裝步驟:
在 Maven 項(xiàng)目中,引入依賴:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> </dependency>
打開IDEA的設(shè)置選項(xiàng)卡
選中插件欄,搜索Lombok插件,下載并啟用
即可在項(xiàng)目中使用 Lombok 提供的注解(如 @Data
、@Getter
、@Setter
等)
(3) 核心功能
自動(dòng)生成 CRUD:
MyBatis-Plus 可以基于實(shí)體類自動(dòng)生成 CRUD 操作使用 BaseMapper<T>
,無需手動(dòng)編寫 SQL,提供 selectById
、insert
等方法
Lambda 表達(dá)式查詢:
- 支持通過 Lambda 方式構(gòu)建動(dòng)態(tài) SQL 查詢,簡化條件構(gòu)建。
- 例如:
List<User> users = userMapper.selectList(new QueryWrapper<User>().lambda().eq(User::getAge, 20));
分頁插件:
- 只需引入 MyBatis-Plus 的分頁插件,即可實(shí)現(xiàn)分頁查詢,簡化分頁邏輯。
- 示例:
Page<User> page = new Page<>(1, 10); IPage<User> userPage = userMapper.selectPage(page, null);
邏輯刪除:
- 通過配置邏輯刪除字段,可以實(shí)現(xiàn)軟刪除操作,數(shù)據(jù)不會被真正刪除,而是標(biāo)記為“已刪除”
2. SpringBoot 集成 Druid 數(shù)據(jù)源
(1) Druid 簡介
Druid 是阿里巴巴推出的高性能數(shù)據(jù)庫連接池。它不僅提供了優(yōu)秀的性能和穩(wěn)定性,還包含監(jiān)控功能,可以實(shí)時(shí)查看 SQL 執(zhí)行情況、連接池狀態(tài)等信息。此外,Druid 支持多種數(shù)據(jù)庫,如 MySQL、Oracle、PostgreSQL 等
Druid 的主要特性:
- 高效穩(wěn)定的連接池:支持多線程并發(fā),能夠在高并發(fā)環(huán)境下保證性能
- 強(qiáng)大的監(jiān)控功能:提供 SQL 監(jiān)控、慢查詢分析、實(shí)時(shí)統(tǒng)計(jì)等功能,便于排查問題
- 支持多種數(shù)據(jù)庫:MySQL、Oracle、PostgreSQL 等主流數(shù)據(jù)庫
(2) SpringBoot 集成 Druid 數(shù)據(jù)源
SpringBoot 集成 Druid 非常方便,只需簡單的配置即可使用其強(qiáng)大的數(shù)據(jù)源功能
步驟:
引入 Maven 依賴:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.8</version> </dependency>
配置 Druid 數(shù)據(jù)源: 在 application.properties
中進(jìn)行 Druid 數(shù)據(jù)源配置:
#配置數(shù)據(jù)源相關(guān)信息 #MySQL5.x版本的驅(qū)動(dòng) spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/crm?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #初始化大小、最小、最大連接數(shù) spring.datasource.druid.initial-size=3 spring.datasource.druid.min-idle=3 spring.datasource.druid.max-active=10 #配置獲取鏈接等待超時(shí)的時(shí)間 spring.datasource.druid.max-wait=60000 #監(jiān)控后臺賬號密碼 spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin #配置StatFileter spring.datasource.druid.filter.stat.log-slow-sql=true spring.datasource.druid.filter.stat.slow-sql-millis=2000
配置監(jiān)控和統(tǒng)計(jì)功能,可以通過 web 界面查看 SQL 執(zhí)行情況和連接池狀態(tài)
到此這篇關(guān)于MyBatis-Plus & Druid 數(shù)據(jù)源總結(jié)的文章就介紹到這了,更多相關(guān)MyBatis-Plus Druid 數(shù)據(jù)源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)詳解
這篇文章主要介紹了JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)劃分原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09java階乘計(jì)算獲得結(jié)果末尾0的個(gè)數(shù)代碼實(shí)現(xiàn)
今天偶然看到一個(gè)要求,求1000~10000之間的數(shù)n的階乘并計(jì)算所得的數(shù)n!末尾有多少個(gè)0?要求: 不計(jì)算 只要得到末尾有多少個(gè)0就可以了,看下面的代碼吧2013-12-12使用@ConfigurationProperties實(shí)現(xiàn)類型安全的配置過程
這篇文章主要介紹了使用@ConfigurationProperties實(shí)現(xiàn)類型安全的配置過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02java虛擬機(jī)深入學(xué)習(xí)之內(nèi)存管理機(jī)制
java虛擬機(jī)在程序運(yùn)行時(shí)將內(nèi)存劃分為多個(gè)區(qū)域,每個(gè)區(qū)域作用,生命周期各不相同,下面這篇文章主要給大家介紹了關(guān)于java虛擬機(jī)深入學(xué)習(xí)之內(nèi)存管理機(jī)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-11-11