您好,登錄后才能下訂單哦!
這篇文章主要介紹“mybatis plus是什么及怎么使用”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“mybatis plus是什么及怎么使用”文章能幫助大家解決問(wèn)題。
做開(kāi)發(fā),免不了對(duì)數(shù)據(jù)進(jìn)行增刪改查,那么mybatis-plus我覺(jué)得很適合我這個(gè)java新手,簡(jiǎn)單好用。
官網(wǎng)在這
MyBatis-Plus(簡(jiǎn)稱(chēng) MP),是一個(gè)MyBatis的增強(qiáng)工具,在MyBatis的基礎(chǔ)上只做增強(qiáng) 不做改變,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生。
任何能使用mybatis進(jìn)行crud,并且支持標(biāo)準(zhǔn)sql的數(shù)據(jù)庫(kù),mp都可以勝任。
無(wú)侵入: 只做增強(qiáng)不做改變,引入它不會(huì)對(duì)現(xiàn)有工程產(chǎn)生影響,如絲般順滑
損耗小: 啟動(dòng)即會(huì)自動(dòng)注入基本CURD
,性能基本無(wú)損耗,直接面向?qū)ο蟛僮?/p>
強(qiáng)大的CRUD: 內(nèi)置通用Mapper
、通用Service
,僅僅通過(guò)少量配置即可實(shí)現(xiàn)單表大部分CRUD
操作,更有強(qiáng)大的條件構(gòu)造器,滿(mǎn)足各類(lèi)使用需求
支持Lambda形式調(diào)用: 通過(guò)Lambda
表達(dá)式,方便的編寫(xiě)各類(lèi)查詢(xún)條件,無(wú)需再擔(dān)心字段寫(xiě)錯(cuò)
支持主鍵自動(dòng)生成: 支持多達(dá)4
種主鍵策略(內(nèi)含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問(wèn)題
支持ActiveRecord模式: 支持ActiveRecord
形式調(diào)用,實(shí)體類(lèi)只需繼承Model
類(lèi)即可進(jìn)行強(qiáng)大的CRUD
操作
支持自定義全局通用操作: 支持全局通用方法注入( Write once, use anywhere )
內(nèi)置代碼生成器: 采用代碼或者Maven
插件可快速生成Mapper 、Model 、Service 、Controller
層代碼,支持模板引擎,更有超多自定義配置
內(nèi)置分頁(yè)插件: 基于MyBatis
物理分頁(yè),開(kāi)發(fā)者無(wú)需關(guān)心具體操作,配置好插件之后,寫(xiě)分頁(yè)等同于普通List
查詢(xún)
分頁(yè)插件支持多種數(shù)據(jù)庫(kù): 支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer
等多種數(shù)據(jù)庫(kù)
內(nèi)置性能分析插件: 可輸出Sql
語(yǔ)句以及其執(zhí)行時(shí)間,建議開(kāi)發(fā)測(cè)試時(shí)啟用該功能,能快速揪出慢查詢(xún)
內(nèi)置全局?jǐn)r截插件: 提供全表delete 、update
操作智能分析阻斷,也可自定義攔截規(guī)則,預(yù)防誤操作
既然是來(lái)操作數(shù)據(jù)的,那得準(zhǔn)備好數(shù)據(jù)的環(huán)境。
# 創(chuàng)建數(shù)據(jù)庫(kù) CREATE DATABASE mybatis_plus; # 創(chuàng)建表 DROP TABLE IF EXISTS user; CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主鍵ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年齡', email VARCHAR(50) NULL DEFAULT NULL COMMENT '郵箱', PRIMARY KEY (id) ); # 插入數(shù)據(jù) INSERT INTO user (id, name, age, email) VALUES (1, 'wesson1', 18, 'pingguotest1@pingguo.com'), (2, 'wesson2', 19, 'pingguotest1@pingguo.com'), (3, 'wesson3', 20, 'pingguotest1@pingguo.com'), (4, 'wesson4', 22, 'pingguotest1@pingguo.com'), (5, 'wesson5', 20, 'pingguotest1@pingguo.com');
為了方便,可以新建一個(gè)Spring Initializr
工程。
配置pom.xml
文件,可以修改下springboot的版本,我們使用穩(wěn)定版的2.2.1.RELEASE
。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
接著添加maven依賴(lài)。
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--lombok 簡(jiǎn)化實(shí)體類(lèi)--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> </dependencies>
還有,在idea里安裝lombok
插件。到settings里plugin下,搜索lombok回車(chē),安裝即可。
找到application.properties
文件,路徑如圖所示,
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://XXXXXX:3306/mybatis_plus?characterEncoding=UTF-8&serverTimezone=GMT%2B8 spring.datasource.username=XXXX spring.datasource.password=XXXXX #mybatis日志,在控制臺(tái)可以看到操作過(guò)程日志 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
注意:這里使用的是mysql8,springboot2.1以上的版本,集成了8.0版本的jdbc驅(qū)動(dòng),在url里加上后綴?characterEncoding=UTF-8&serverTimezone=GMT%2B8
。
另外,driver-class-name
也建議加上cj
,com.mysql.cj.jdbc.Driver
。因?yàn)橹暗?code>com.mysql.jdbc.Driver已經(jīng)廢棄了,運(yùn)行的時(shí)候會(huì)有warning
。
在操作之前,還有些準(zhǔn)備代碼需要完成:
package com.pingguo.mpdemo.entity; import lombok.Data; @Data public class User { private Long id; private String name; private Integer age; private String email; }
這里加上@Data注解即可,不要手動(dòng)的編寫(xiě)set、get、tostring
方法了。
package com.pingguo.mpdemo.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.pingguo.mpdemo.entity.User; import org.springframework.stereotype.Repository; @Repository public interface UserMapper extends BaseMapper<User> { }
這是一個(gè)mapper接口,我們要繼承BaseMapper
,把User實(shí)體傳進(jìn)去,就可以使用crud了。
在啟動(dòng)類(lèi)上,加個(gè)注解,mapper的路徑。
package com.pingguo.mpdemo; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication // 配置掃描mapper的路徑 @MapperScan("com.pingguo.mpdemo.mapper") public class MpdemoApplication { public static void main(String[] args) { SpringApplication.run(MpdemoApplication.class, args); } }
為了方便,可以直接在單元測(cè)試代碼里進(jìn)行crud操作。
因?yàn)槭孪任覀冊(cè)诒砝镆呀?jīng)插入了數(shù)據(jù),所以現(xiàn)在可以去把所有數(shù)據(jù)都查出來(lái)。
@SpringBootTest class MpdemoApplicationTests { @Autowired private UserMapper userMapper; @Test void findAll() { List<User> users = userMapper.selectList(null); System.out.println(users); } }
因?yàn)槲覀兣渲昧薽ybatis的日志,所以在控制臺(tái)可以看到整個(gè)的操作過(guò)程。
// 新增 @Test void addUser() { User user = new User(); user.setName("pingguo"); user.setAge(21); user.setEmail("pingguo@pingguo.com"); userMapper.insert(user); } // 刪除 @Test void deleteUser() { userMapper.deleteById(1L); } // 修改 @Test void updateUser() { User user = new User(); user.setId(2L); user.setName("修改名稱(chēng)222"); userMapper.updateById(user); }
新增、刪除、修改也很簡(jiǎn)單,可以通過(guò)日志看下執(zhí)行過(guò)程。
關(guān)于“mybatis plus是什么及怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。