myBatisPlus 如何使用自带的update方法
时间: 2024-01-05 12:02:31 浏览: 38
MyBatisPlus 中自带的 update 方法可以通过以下两种方式进行使用:
1. 使用 MyBatisPlus 提供的 UpdateWrapper 进行条件构造,例如:
```
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name", "Tom").set("age", 20);
int result = userMapper.update(null, updateWrapper);
```
其中,UpdateWrapper 用于构造 SQL 的 SET 和 WHERE 部分,eq 方法用于添加等于条件,set 方法用于设置要更新的字段和值。
2. 直接传入实体对象进行更新,例如:
```
User user = new User();
user.setId(1L);
user.setName("Tom");
user.setAge(20);
int result = userMapper.updateById(user);
```
其中,updateById 方法根据传入的实体对象的主键进行更新。
需要注意的是,使用自带的 update 方法时,需要在 Mapper 接口中继承 BaseMapper 接口。
相关问题
mybatisplus自带方法使用
Mybatis-Plus 是一个 Mybatis 的增强工具,在 Mybatis 的基础上进行了扩展,简化了开发流程,提高了开发效率。Mybatis-Plus 提供了很多自带方法,可以使用这些方法来进行常规的增删改查操作,使用起来非常方便。下面是一些常用的自带方法:
1. 插入数据
```java
// 插入一条记录
int insert(T entity);
// 插入一条记录(选择字段, null字段不插入)
int insertSelective(T entity);
// 批量插入数据
int insertBatch(List<T> entityList);
// 批量插入数据(选择字段, null字段不插入)
int insertBatchSomeColumn(List<T> entityList);
```
2. 删除数据
```java
// 根据 ID 删除
int deleteById(Serializable id);
// 根据 columnMap 条件删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
// 删除(根据ID 批量删除)
int deleteBatchIds(Collection<? extends Serializable> idList);
// 根据 entity 条件删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
```
3. 更新数据
```java
// 根据 ID 修改
int updateById(T entity);
// 根据 ID 选择修改
int updateSelectiveById(T entity);
// 根据 whereEntity 条件,更新记录
int update(T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
// 根据 whereEntity 条件,选择更新记录
int updateSelective(T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
```
4. 查询数据
```java
// 根据 ID 查询
T selectById(Serializable id);
// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 entity 条件,查询总记录数
int selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 entity 条件,查询全部记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 entity 条件,查询全部记录(并翻页)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
```
其中,`Wrapper` 是 Mybatis-Plus 提供的一个条件构造器,用于构造查询条件。可以通过 `QueryWrapper`、`UpdateWrapper`、`LambdaQueryWrapper`、`LambdaUpdateWrapper` 等方式来创建 `Wrapper` 对象。
mybatisplus如何使用update
Mybatis-plus提供了多种方式进行update操作,下面给出两种常用的方法。
1. 使用LambdaUpdateWrapper进行update
LambdaUpdateWrapper是mybatis-plus提供的一个Lambda表达式的构造器,可以方便地构造出update操作的条件。示例代码如下:
```java
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("age", 18).eq("name", "张三");
userMapper.update(null, updateWrapper);
```
上面的代码中,我们使用UpdateWrapper构造了一个更新条件,即将名字为“张三”的用户的年龄修改为18岁。最后通过userMapper的update方法执行更新。
2. 使用@Update注解进行update
@Update是mybatis-plus提供的一个注解,可以直接在mapper接口中定义update方法。示例代码如下:
```java
@Update("update user set age=#{age} where name=#{name}")
int updateAgeByName(@Param("name") String name, @Param("age") int age);
```
上面的代码中,我们通过@Update注解定义了一个更新方法updateAgeByName,其中使用了两个参数name和age来指定更新条件和更新值。最后返回更新的结果数量。
以上两种方式都可以实现update操作,具体使用哪种方式,可以根据实际情况进行选择。