序言
你只管努力,其他交給時(shí)間,時(shí)間會(huì)證明一切。
MyBatis-Plus 是 MyBatis 的增強(qiáng)工具,它簡化了 MyBatis 的開發(fā),并提供了許多實(shí)用的功能和工具類。下面是 MyBatis-Plus 的使用方法:
1 使用方法
1. 引入依賴
在 Maven 項(xiàng)目中,需要在 pom.xml 文件中添加如下依賴:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
其中?
mybatis-plus-boot-starter
?是 MyBatis-Plus 的 Spring Boot Starter。
2. 配置 MyBatis-Plus
在 Spring Boot 項(xiàng)目中,可以通過在 application.properties 或 application.yml 文件中配置 MyBatis-Plus。例如:
mybatis-plus:
# mapper 文件的路徑,多個(gè)值用逗號(hào)隔開
mapper-locations: classpath:mapper/*.xml
# 實(shí)體類所在的包路徑,多個(gè)值用逗號(hào)隔開
typeAliasesPackage: com.example.demo.entity
3. 編寫實(shí)體類
使用 MyBatis-Plus 時(shí),需要編寫實(shí)體類,并在實(shí)體類上添加注解。例如:
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
}
在這個(gè)實(shí)體類中,使用了 Lombok 的?
@Data
?注解自動(dòng)生成 getter 和 setter 方法,@NoArgsConstructor
?和?@AllArgsConstructor
?注解自動(dòng)生成無參和全參構(gòu)造方法,@TableName
?注解指定了實(shí)體類對(duì)應(yīng)的數(shù)據(jù)庫表名,@TableId
?注解指定主鍵的生成方式。
4. 編寫 Mapper 接口
使用 MyBatis-Plus 時(shí),可以不用編寫 SQL 語句,只需要編寫 Mapper 接口,并讓該接口繼承 MyBatis-Plus 提供的 BaseMapper 接口。例如:
public interface UserMapper extends BaseMapper<User> {
}
在這個(gè)接口中,繼承了 MyBatis-Plus 提供的 BaseMapper 接口,即可使用 MyBatis-Plus 提供的增刪改查方法。
5. 使用 MyBatis-Plus 提供的增刪改查方法
在編寫 Mapper 接口后,即可在 Service 層中使用 MyBatis-Plus 提供的增刪改查方法。例如:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> getUserList() {
return userMapper.selectList(null);
}
@Override
public User getUserById(Long id) {
return userMapper.selectById(id);
}
@Override
public void saveUser(User user) {
userMapper.insert(user);
}
@Override
public void updateUser(User user) {
userMapper.updateById(user);
}
@Override
public void deleteUser(Long id) {
userMapper.deleteById(id);
}
}
在這個(gè) Service 實(shí)現(xiàn)類中,使用了 MyBatis-Plus 提供的增刪改查方法,例如?
selectList
、selectById
、insert
、updateById
?和?deleteById
?等方法。這些方法的參數(shù)和返回值都非常簡單,使用起來非常方便。
2 構(gòu)造器介紹
1 LambdaQueryWrapper介紹
LambdaQueryWrapper 是?MyBatis-Plus 提供的一個(gè)查詢條件構(gòu)造器,它可以通過 Lambda 表達(dá)式來構(gòu)造查詢條件,使得查詢條件更加簡潔、易讀。下面是 LambdaQueryWrapper 的具體使用方法介紹:
1.1 創(chuàng)建 LambdaQueryWrapper 對(duì)象
在使用 LambdaQueryWrapper 之前,需要先創(chuàng)建 LambdaQueryWrapper 對(duì)象。例如:
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
在創(chuàng)建 LambdaQueryWrapper 對(duì)象時(shí),需要指定實(shí)體類的類型,這里以 User 類為例。
1.2?構(gòu)造查詢條件
使用 LambdaQueryWrapper 可以很方便地構(gòu)造查詢條件。例如:
queryWrapper.eq(User::getName, "張三"); // 等于
queryWrapper.ne(User::getAge, 18); // 不等于
queryWrapper.gt(User::getAge, 20); // 大于
queryWrapper.ge(User::getAge, 20); // 大于等于
queryWrapper.lt(User::getAge, 30); // 小于
queryWrapper.le(User::getAge, 30); // 小于等于
queryWrapper.like(User::getName, "張"); // 模糊查詢
queryWrapper.in(User::getAge, Arrays.asList(20, 25, 30)); // in 查詢
queryWrapper.isNull(User::getEmail); // 判斷為 null
queryWrapper.isNotNull(User::getEmail); // 判斷不為 null
在上面的例子中,使用了 Lambda 表達(dá)式來指定查詢條件,例如?
User::getName
?表示查詢 User 實(shí)體類中的 name 屬性。
1.3?組合查詢條件
使用 LambdaQueryWrapper 可以很方便地組合查詢條件。例如:
queryWrapper.eq(User::getName, "張三").and(qw -> qw.lt(User::getAge, 30).or().isNotNull(User::getEmail));
在上面的例子中,使用了?
and
?和?or
?方法來組合查詢條件,實(shí)現(xiàn)了一個(gè)復(fù)雜的查詢條件。
1.4 執(zhí)行查詢操作
使用構(gòu)造好的 LambdaQueryWrapper 對(duì)象,可以執(zhí)行查詢操作。例如:
List<User> userList = userMapper.selectList(queryWrapper);
在使用 selectList 方法時(shí),將 LambdaQueryWrapper 對(duì)象作為參數(shù)傳入,即可執(zhí)行查詢操作。同理,還可以使用 selectOne、selectCount 等方法執(zhí)行查詢操作。
以上是 LambdaQueryWrapper 的具體使用方法介紹,通過使用 LambdaQueryWrapper,可以很方便地構(gòu)造查詢條件,使得查詢操作更加簡潔、易讀。
2 LambdaUpdateWrapper介紹?
LambdaUpdateWrapper 是 MyBatis-Plus 提供的一個(gè)更新條件構(gòu)造器,它可以通過 Lambda 表達(dá)式來構(gòu)造更新條件,使得更新操作更加簡潔、易讀。
下面是 LambdaUpdateWrapper 的具體使用方法介紹:
1. 創(chuàng)建 LambdaUpdateWrapper 對(duì)象
在使用 LambdaUpdateWrapper 之前,需要先創(chuàng)建 LambdaUpdateWrapper 對(duì)象。例如:
LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>();
在創(chuàng)建 LambdaUpdateWrapper 對(duì)象時(shí),需要指定實(shí)體類的類型,這里以 User 類為例。
2. 構(gòu)造更新條件
使用 LambdaUpdateWrapper 可以很方便地構(gòu)造更新條件。例如:
updateWrapper.eq(User::getName, "張三").set(User::getAge, 30); // 等于
updateWrapper.ne(User::getAge, 18).set(User::getEmail, "test@test.com"); // 不等于
updateWrapper.gt(User::getAge, 20).set(User::getEmail, "test@test.com"); // 大于
updateWrapper.ge(User::getAge, 20).set(User::getEmail, "test@test.com"); // 大于等于
updateWrapper.lt(User::getAge, 30).set(User::getEmail, "test@test.com"); // 小于
updateWrapper.le(User::getAge, 30).set(User::getEmail, "test@test.com"); // 小于等于
在上面的例子中,使用了 Lambda 表達(dá)式來指定更新條件,例如?
User::getName
?表示更新 User 實(shí)體類中的 name 屬性。
3. 組合更新條件
使用 LambdaUpdateWrapper 可以很方便地組合更新條件。例如:
updateWrapper.eq(User::getName, "張三").and(qw -> qw.lt(User::getAge, 30).or().isNotNull(User::getEmail)).set(User::getAge, 20);
在上面的例子中,使用了?
and
?和?or
?方法來組合更新條件,實(shí)現(xiàn)了一個(gè)復(fù)雜的更新條件。
4. 執(zhí)行更新操作
使用構(gòu)造好的 LambdaUpdateWrapper 對(duì)象,可以執(zhí)行更新操作。例如:
userMapper.update(null, updateWrapper);
在使用 update 方法時(shí),將 LambdaUpdateWrapper 對(duì)象作為參數(shù)傳入,即可執(zhí)行更新操作。同理,還可以使用 updateById、updateBatchById 等方法執(zhí)行更新操作。文章來源:http://www.zghlxwxcb.cn/news/detail-472994.html
通過使用 LambdaUpdateWrapper,可以很方便地構(gòu)造更新條件,使得更新操作更加簡潔、易讀。文章來源地址http://www.zghlxwxcb.cn/news/detail-472994.html
到了這里,關(guān)于【Java系列】Mybatis-Plus 使用介紹二的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!