一文教你學會如何使用MyBatisPlus
前言

本篇文章,我們通過 MyBatis Plus 來對一張表進行 CRUD 操作,來看看是如何簡化我們開發(fā)的。
1、創(chuàng)建測試表
創(chuàng)建 USER 表:
DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `ID` int(11) NOT NULL, `USER_NAME` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL, `USER_AGE` int(11) DEFAULT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
向 USER 表中插入兩條數(shù)據(jù):
INSERT INTO `user` VALUES ('1', 'IT可樂', '18');
INSERT INTO `user` VALUES ('2', 'YSOcean', '22');
打開表,發(fā)現(xiàn)有兩條數(shù)據(jù)了:

2、創(chuàng)建 Spring Boot 工程
通過 IDEA 創(chuàng)建 Spring Boot 工程,如果不能連接 https://start.spring.io/ 網(wǎng)址,可以將網(wǎng)址變成 https://start.aliyun.com/ ,如下所示:

3、導入依賴
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency> 首先 mybatis-plus 我們導入最新版 3.3.2。另外,由于我數(shù)據(jù)采用的是 MySql,所以這里導入了 Mysql 的連接依賴。
另外,為了簡化 JavaBean 類的書寫,我這里額外導入一個 lombok 插件依賴。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
通過這個依賴的相關注解,我們可以不用書寫繁瑣的 get/set 方法。
4、編寫數(shù)據(jù)庫配置文件
在 springboot 項目的 resource 目錄下,新建 application.yml 文件,添加如下內(nèi)容:
server:
port: 8082
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=UTF-8
username: root
password: root
# >= 6.x: com.mysql.cj.jdbc.Driver
# <= 5.x: com.mysql.jdbc.Driver
driver-class-name: com.mysql.cj.jdbc.Driver
注意:url 里面填寫的 mybatisplus 是我的數(shù)據(jù)庫名稱,注意修改,username 和 password 分別填寫自己的數(shù)據(jù)庫連接名稱和密碼。
5、編寫代碼
①、實體類 User.java
@Getter@Setterpublic class User {private Long id;
private String userName; private String userAge;
}②、創(chuàng)建 UserMapper 接口
import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.ys.mybatisplusstudy.entry.User;
public interface UserMapper extends BaseMapper<User> {}
③、啟動類增加 @MapperScan 注解
@SpringBootApplication@MapperScan("com.ys.mybatisplusstudy.mapper")public class MybatisplusstudyApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisplusstudyApplication.class, args);
}
}如果不想在啟動類加 @MapperScan 注解,也可在每個 Mapper 接口上增加 @Mapper 注解。
所有配置上面都以完成,是不是很簡單,接下來我們對這張表進行 CRUD 測試。
6、CRUD 測試我們在編寫 UserMapper 接口時,其繼承了一個 BaseMapper 接口:
public interface UserMapper extends BaseMapper<User> {}我們進入到 BaseMapper 內(nèi)部,發(fā)現(xiàn)其結(jié)構(gòu)如下:
這些方法便是我們常用的增刪改查了,下面我們分別演示幾個常用的。
①、insert:新增一條記錄
@SpringBootTest
class MybatisplusstudyApplicationTests {
@Autowired
private UserMapper userMapper;
/**
* 新增一條記錄
*/
@Test
public void testInsert(){
User user = new User();
user.setId(3L);
user.setUserName("test insert");
user.setUserAge("1");
int insert = userMapper.insert(user);
System.out.println("影響記錄數(shù):"+insert);
}
}執(zhí)行完畢后,我們查看數(shù)據(jù)庫:

②、delete:刪除記錄
/**
* 根據(jù)id刪除一條記錄
*/
@Test
public void testDeleteById(){
int num = userMapper.deleteById(3L);
System.out.println("刪除的記錄數(shù)為:"+num);
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("id",3L);
userMapper.delete(wrapper);
}
/**
* 構(gòu)造相關條件刪除記錄
*/
@Test
public void testDelete(){
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("USER_NAME","test insert");
int num = userMapper.delete(wrapper);
System.out.println("刪除的記錄數(shù)為:"+num);
}
③、update:修改記錄
/**
* 根據(jù)id修改
*/
@Test
public void testudpateById(){
User user = new User();
user.setId(3L);
user.setUserName("test update");
int num = userMapper.updateById(user);
System.out.println("修改的記錄數(shù)為:"+num);
}
④、select:查詢記錄
/**
* 查詢User表所有記錄
*/
@Test
public void testSelectAll(){
List<User> users = userMapper.selectList(null);
users.forEach(x-> System.out.println(x.getId()+"-"+x.getUserName()+"-"+x.getUserAge()));
}
/**
* 查詢指定記錄
*/
@Test
public void testSelectWrapper(){
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("user_name","IT可樂");
List<User> users = userMapper.selectList(wrapper);
users.forEach(x-> System.out.println(x.getId()+"-"+x.getUserName()+"-"+x.getUserAge()));
}
發(fā)現(xiàn)沒有,做增刪改查是如此的絲滑流暢,都不用寫 SQL 語句了。
當然,這都只是單表的簡單玩法,后面我們會介紹高階玩法。
7、打印 SQL 語句
這里補充一個小知識點,通過如下配置,我們可以查看執(zhí)行的 SQL 語句日志。
在 applicatio.yml 文件中,進行如下配置:
# 配置slq打印日志
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
當然,這種配置只是把 SQL 日志打印到控制臺便于我們調(diào)試,后面會介紹更加強大的 SQL 分析工具。
以上就是一文教你學會如何使用MyBatisPlus的詳細內(nèi)容,更多關于MyBatisPlus使用教程的資料請關注腳本之家其它相關文章!
相關文章
Java Jedis NOAUTH Authentication required問題解決方法
這篇文章主要介紹了Java Jedis NOAUTH Authentication required問題解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07
解析Arthas協(xié)助排查線上skywalking不可用問題
這篇文章主要為大家介紹了解析Arthas協(xié)助排查線上skywalking不可用的問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-02-02

