一、MyBatis-Plus概述
官網:?baomidou.com
MyBatis-Plus(簡稱 MP) 在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。
(1)單表操作
不需要編寫sql語句,封裝方法,使用封裝的這些方法方便實現
(2)復雜查詢或者多表查詢
仍需編寫SQL語句實現
(3)大致步驟
①創建數據庫、創建表、添加記錄
②創建SpringBoot工程,引入MP相關依賴
<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency>
③SpringBoot創建配置文件,指定操作數據庫路徑
#mysql數據庫連接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
④創建SpringBoot工程啟動類
⑤創建操作表對應實體類
⑥創建Mapper,繼承BaseMapper,指定對應實體類
?
二、CRUD
(1)在官網可查注解用法,以下列舉常用注解:
①????????@TableName(" "):相同時可不寫
?
②????????@TableId主鍵策略
?
?
③????????@TableField(" ")?
?
?(2)單表操作時使用baseMapper已封裝好的方法進行crud
CRUD:
@SpringBootTest
public class MpDemo1 {//注入mapper@Autowiredprivate UserMapper userMapper;//1 查詢所有記錄 selectList@Testpublic void findAll() {List<User> list = userMapper.selectList(null);list.forEach(user->{System.out.println(user.getName()+":"+user.getAge());});}//2 添加操作insert@Testpublic void addUser() {//創建對象,設置值User user = new User();user.setName("東方不敗");user.setAge(30);user.setEmail("dfbb@atguigu.com");//調用方法int rows = userMapper.insert(user);System.out.println(rows);System.out.println(user);}//3 根據id查詢@Testpublic void getUserById() {User user = userMapper.selectById(1L);System.out.println(user);}//4 修改操作@Testpublic void updateUser() {//根據id查詢User user = userMapper.selectById(1L);//設置修改值user.setName("岳不群");user.setAge(50);//調用方法完成修改int rows = userMapper.updateById(user);System.out.println(rows);}//5 刪除操作@Testpublic void deleteUser() {userMapper.deleteById(2L);}//6 條件查詢}
刪除操作:?
?
條件查詢:
//select * from user where name=? and age=?
@Test
public void select1() {//封裝條件對象LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();wrapper.eq(User::getName,"Tom");wrapper.eq(User::getAge,28);//調用方法List<User> list = userMapper.selectList(wrapper);list.forEach(user->{System.out.println(user.getName()+":"+user.getAge());});
}//select * from user where age>=28
@Test
public void select2() {LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();wrapper.ge(User::getAge,28);//調用方法List<User> list = userMapper.selectList(wrapper);list.forEach(user->{System.out.println(user.getName()+":"+user.getAge());});
}//select * from user name like ?
@Test
public void select3() {LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();wrapper.like(User::getName,"m");//調用方法List<User> list = userMapper.selectList(wrapper);list.forEach(user->{System.out.println(user.getName()+":"+user.getAge());});
}
?
三、主鍵策略
默認策略:都是數字
uuid值:數字和字母