Java中使用MyBatis-Plus操作數(shù)據(jù)庫的實(shí)例
MyBatis-Plus
MyBatis-Plus (opens new window)(簡稱 MP)是一個(gè) MyBatis (opens new window)的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生。
MyBatis可以直接在xml中通過SQL語句操作數(shù)據(jù)庫,很靈活。但其操作都要通過SQL語句進(jìn)行,就必須寫大量的xml文件,很麻煩。mybatis-plus就很好的解決了這個(gè)問題。
官網(wǎng)
使用
這里我用的數(shù)據(jù)庫是mysql8,新建test數(shù)據(jù)庫,并創(chuàng)建user表


建表語句
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主鍵', `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名', `age` int(0) NULL DEFAULT NULL COMMENT '年齡', `address` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
引入依賴
這里我用的數(shù)據(jù)庫是mysql8
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--Druid連接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
</dependencies>分別創(chuàng)建application.yml及application-dev.yml文件
application.yml
# Spring配置
spring:
# 環(huán)境設(shè)置
profiles:
active: dev
# 模板引擎
thymeleaf:
mode: HTML
encoding: utf-8
# 禁用緩存
cache: false
# 服務(wù)模塊
devtools:
restart:
# 熱部署開關(guān)
enabled: trueapplication-dev.yml
# 開發(fā)環(huán)境配置
server:
# 服務(wù)器的HTTP端口,默認(rèn)為80
port: 8081
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
url: jdbc:mysql://localhost:3307/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
initial-size: 5
min-idle: 10
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: select 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-open-prepared-statements: 50
max-pool-prepared-statement-per-connection-size: 20編寫實(shí)體類User.java,這里用到lombok
@Data
public class User {
private String id;
private String name;
private Integer age;
private String address;
}創(chuàng)建mapper文件夾,并編寫 Mapper 類 UserMapper.java
public interface UserMapper extends BaseMapper<User> {
}在 Spring Boot 啟動(dòng)類中添加 @MapperScan 注解,掃描 Mapper 文件夾:
@SpringBootApplication
@MapperScan("com.mybatisplus.mapper")
public class MainApplication {
public static void main(String[] args)
{
SpringApplication.run(MainApplication.class, args);
}
}添加測試類,進(jìn)行功能測試:
測試數(shù)據(jù)插入數(shù)據(jù)庫
@Autowired
private UserMapper userMapper;
@Test
public void testInsert() {
System.out.println(("----- insert method test ------"));
User user = new User();
// 自動(dòng)生成主鍵,例如550E8400-E29B-11D4-A716-446655440000
String id = UUID.randomUUID().toString();
String replaceAll = id.replaceAll("-", "");
//550E8400E29B11D4A716446655440000
user.setId(replaceAll);
user.setName("張三");
user.setAge(21);
user.setAddress("北京市海淀區(qū)");
int insert = userMapper.insert(user);
if(insert>0){
System.out.println("插入成功:"+user);
}else{
System.out.println("插入失??!");
}
}

測試查詢所有
@Autowired
private UserMapper userMapper;
@Test
public void testSelect() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
userList.forEach(System.out::println);
}
測試刪除數(shù)據(jù)
刪除姓名等于“張三”的記錄
@Autowired
private UserMapper userMapper;
@Test
public void testDelete() {
System.out.println(("----- delete method test ------"));
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
User user = new User();
user.setName("張三");
wrapper.eq(User::getName, user.getName());
int delete = userMapper.delete(wrapper);
if(delete>0){
System.out.println("刪除成功:"+user);
}else{
System.out.println("刪除失??!");
}
}
測試修改數(shù)據(jù)
修改前先執(zhí)行下插入

修改還可以用userMapper.updateById(T entity)方法來修改,傳入一個(gè)實(shí)體類
@Autowired
private UserMapper userMapper;
@Test
public void testUpdate() {
System.out.println(("----- update method test ------"));
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
User user = new User();
user.setName("張三");
wrapper.eq(User::getName, user.getName());
User userNew = new User();
userNew.setName("李四");
int update = userMapper.update(userNew, wrapper);
if(update>0){
System.out.println("修改成功:"+user);
}else{
System.out.println("修改失??!");
}
}

到此這篇關(guān)于Java中使用MyBatis-Plus操作數(shù)據(jù)庫的實(shí)例的文章就介紹到這了,更多相關(guān)MyBatis-Plus操作數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot定時(shí)任務(wù)兩種(Spring Schedule 與 Quartz 整合 )實(shí)現(xiàn)方法
本篇文章主要介紹了SpringBoot定時(shí)任務(wù)兩種(Spring Schedule 與 Quartz 整合 )實(shí)現(xiàn)方法,詳細(xì)的介紹了Spring Schedule 與 Quartz 整合的兩種方法,有興趣的可以了解一下。2017-03-03
詳解Spring中Bean后置處理器(BeanPostProcessor)的使用
BeanPostProcessor 接口也被稱為Bean后置處理器,通過該接口可以自定義調(diào)用初始化前后執(zhí)行的操作方法。本文將詳細(xì)講講它的使用,需要的可以參考一下2022-06-06
Java 使用keytool創(chuàng)建CA證書的操作
這篇文章主要介紹了Java 使用keytool創(chuàng)建CA證書的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Java中static與instance的區(qū)別及作用詳解
這篇文章主要為大家介紹了Java中static與instance的區(qū)別及作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
通過java.util.TreeMap源碼加強(qiáng)紅黑樹的理解
通過分析java.util.TreeMap源碼來對經(jīng)典問題紅黑樹加強(qiáng)理解和理清思路。2017-11-11
java抓取鼠標(biāo)事件和鼠標(biāo)滾輪事件示例
這篇文章主要介紹了java抓取鼠標(biāo)事件和鼠標(biāo)滾輪事件示例,需要的朋友可以參考下2014-05-05

