一、簡介
Mybatis-Plus Apply是一個基於Mybatis-Plus封裝的可插拔SQL構建器,旨在簡化CRUD操作的編寫和查看。Apply採用Fluent API寫法,可以幫助開發者快速構建複雜SQL,並且可以自動防止SQL注入攻擊。
二、核心概念
在了解Mybatis-Plus Apply之前,需要先了解一些核心概念:
1. Wrapper
Wrapper是Apply的核心概念之一,表示SQL語句的條件構造器。Wrapper包含了多個方法用於構造SQL查詢條件,如eq、in、between等。開發者可以結合Wrapper實現複雜的SQL查詢條件拼接,從而可讀性更強。
2. LambdaQueryWrapper
此類繼承Wrapper,通過Lambda表達式封裝SQL條件構造器。LambdaQueryWrapper提供了lambda表達式操作符,可以更加方便地對Java對象進行條件查詢。同時,LambdaQueryWrapper還支持自動排除null值屬性和空字符串屬性。
3. LambdaUpdateWrapper
類似於LambdaQueryWrapper,LambdaUpdateWrapper繼承了Wrapper,是用於Update語句的條件構造器。LambdaUpdateWrapper提供了更加方便的Update條件拼接方法,如set和inc等。
4. QueryChainWrapper
QueryChainWrapper是Mybatis-Plus提供的通用查詢鏈式調用方法。QueryChainWrapper的操作符可以直接調用LambdaQueryWrapper中的操作符,議論實現鏈式調用至關重要。
三、使用方式
1. 添加依賴
在 pom.xml 文件中添加如下依賴即可:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>latest-version</version>
</dependency>
2. 實現查詢操作
以下是LambdaQueryWrapper的一個簡單示例:
QueryWrapper<User> queryWrapper = new LambdaQueryWrapper<User>()
.eq(User::getUsername, "admin")
.eq(User::getPassword, "123456")
.ge(User::getCreateTime, "2021-01-01")
.orderByAsc(User::getCreateTime);
List<User> userList = userService.list(queryWrapper);
上述代碼將從數據庫中查詢所有用戶名為admin,密碼為123456,創建時間大於等於2021-01-01的用戶,並按創建時間升序排序。其中,LambdaQueryWrapper通過Lambda表達式封裝SQL構造器。eq方法表示使用等於的條件,ge方法表示大於等於的條件,orderByAsc方法表示升序排序。
3. 實現更新操作
以下是LambdaUpdateWrapper的一個簡單示例:
LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>()
.eq(User::getUsername, "admin")
.set(User::getPassword, "1234567");
userService.update(updateWrapper);
上述代碼將更新用戶名為admin的用戶的密碼為1234567。其中,LambdaUpdateWrapper繼承自Wrapper,使用eq方法確定更新的目標,使用set方法來進行更新操作。
4. 實現通用查詢操作
以下是QueryChainWrapper的一個簡單示例:
List<User> userList = userService.lambdaQuery()
.eq(User::getUsername, "admin")
.eq(User::getPassword, "123456")
.ge(User::getCreateTime, "2021-01-01")
.orderByAsc(User::getCreateTime)
.list();
上述代碼使用了QueryChainWrapper的通用查詢功能,將鏈式調用中的操作符應用到了LambdaQueryWrapper中。通過鏈式調用,可以非常方便地構造出複雜的SQL查詢條件。同時,QueryChainWrapper還支持直接返回單個實體或者分頁查詢。
四、總結
Mybatis-Plus Apply提供了基於Wrapper的SQL構造器和基於Lambda表達式的SQL條件構造器,以及通用查詢鏈式調用功能。使用Apply能夠更加方便地構造出複雜的SQL查詢和更新條件,並且自動防止SQL注入攻擊。希望本篇文章對大家對Mybatis-Plus Apply的學習有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/197462.html