目錄
一、Lombok
1、添加Lombok依賴
2、安裝Lombok插件
3、模型類上添加注解
二、分頁功能
1、調用方法傳入參數擷取傳回值
2、設定分頁攔截器
3、運作測試程式
一、Lombok
從上一篇部落格可看出,DAO接口類的編寫變得簡單,反過來看模型,編寫還需要(私有屬性、setter...getter...方法、toString方法、構造函數等内容),對于模型類有什麼優化方法,可以用Lombok。
概念:Lombok,一個Java類庫,提供了一組注解,簡化POJO實體類開發。
使用步驟
1、添加Lombok依賴
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!--<version>1.18.12</version>-->
</dependency>
注意:版本可以不寫,因為SpringBoot已經管理了lombok版本。
2、安裝Lombok插件
新版本的IDEA已經内置類該插件,如果删除setter和getter方法程式會報紅,則需要安裝插件。
如果找不到Lombok插件,可以通路如下網站
Versions: Lombok - IntelliJ IDEA & Android Studio Plugin | Marketplace (jetbrains.com)
https://plugins.jetbrains.com/plugin/6317-lombok/versions
根據位元組IDEA的版本下載下傳對應的Lombok版本,下載下傳成功後,在IDEA中采用離線安裝的方式進行安裝
選擇這個位置的選擇進行離線安裝,進入後選擇自己下載下傳的插件包,點選OK即可進行離線安裝。
3、模型類上添加注解
Lombok常見的注解有:
● @Setter:為模型類的屬性提供setter方法
● @Getter:為模型類的屬性提供getter方法
● @ToString:為模型類的屬性提供toString方法
● @EqualsAndHashCode:為模型類的屬性提供equals和hashcode方法
● @Data:是一個組合注解,包含上面的注解的功能
● @NoArgsConstructor:提供一個無參構造函數
● @AllArgsConstruotor:提供一個包含所有參數的構造函數
Lombok的注解還有很多,上面标紅的三個比較常用。
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String name;
private String password;
private Integer age;
private String tel;
}
說明:Lombok隻是簡化模型的編寫,之前的方法也能用,比如,隻有name和password的構造方法,在裡面添加即可。
二、分頁功能
分頁查詢使用的方法:
IPage<T> selectPage (IPage<T> page, wrapper<T> querywrapper);
IPage:用來建構分頁查詢的條件
Wrapper:用來建構添加查詢的條件,目前我們沒有可直接傳為Null
IPage:傳回值,建構分頁條件和方法的傳回值都是IPage
IPage是一個接口,我們要實作類來建構,具體實作類,可進入到IPage類中按ctrl+h,會找到一個實作類為Page。
1、調用方法傳入參數擷取傳回值
@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {
@Autowired
private UserDao userDao;
//分頁查詢
@Test
void testSelectPage(){
//1 建立IPage分頁對象,設定分頁參數,1為目前頁碼,3為每頁顯示的記錄數
IPage<User> page=new Page<>(2,3);
//2 執行分頁查詢
userDao.selectPage(page,null);
//3 擷取分頁結果
System.out.println("目前頁碼值:"+page.getCurrent());
System.out.println("每頁顯示數:"+page.getSize());
System.out.println("一共多少頁:"+page.getPages());
System.out.println("一共多少條資料:"+page.getTotal());
System.out.println("資料:"+page.getRecords());
}
}
2、設定分頁攔截器
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
//1 建立MybatisPlusInterceptor攔截器對象
MybatisPlusInterceptor mpInterceptor=new MybatisPlusInterceptor();
//2 添加分頁攔截器
mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mpInterceptor;
}
}
說明:上面的内容在MP的官方文檔中都有。
3、運作測試程式
# 開啟mp的日志(輸出到控制台)
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl