mybatis-plus-Cud操作


MP 的更新

 

/**
* 傳入實體對象 ID 必須設置
*/
@Test
public void updataById() {
User user = new User();
user.setId(1087982257332887553L);
user.setAge(35);
//生成的sql: UPDATE user SET age=? WHERE id=?
int rows = userMapper.updateById(user);
System.out.println(rows);


}

/**
* 根據whereEntity 條件,更新
* 第一個參數傳入entity 實體類對象 會被設置為要set的值(set條件值可以為null)
* 第二個參數 updateWrapper 實體對象封裝操作類(可以為null里面的entity用於生成where語句條件)
* 生成的sql:UPDATE user SET age=?, email=? WHERE name = ? AND age = ?
* new UpdateWrapper<>() 也可傳入實體類對象 對象屬性也會被作為where的條件
*/
@Test
public void update() {
UpdateWrapper<User> wrapper = new UpdateWrapper<>();
wrapper.eq("name", "李一偉").eq("age", 28);
//如果更新個別字段 使用set()方法
wrapper.eq("name", "李一偉").set(true, "age", 30);
User user = new User();
user.setEmail("lyw2019@boamidou.com");
user.setAge(29);
int rows= userMapper.update(user, wrapper);


}
/**
* Lambda函數更新
*
*/
@Test
public void updateLambda() {
LambdaUpdateWrapper<User> lambdaUpdate = Wrappers.<User>lambdaUpdate();
lambdaUpdate.eq(User::getName, "李一偉").eq(User::getAge, 30).set(User::getAge, 31);
//生成的sql: UPDATE user SET age=? WHERE name = ? AND age = ?
int rows = userMapper.update(null, lambdaUpdate);
System.out.println(rows);

}
/**
* Lambda函數更新 鏈式調用 構造器傳入接口實現對象
* 返回boolean 值
*
*/
@Test
public void updateLambdaChina() {
boolean updatewrapper = new LambdaUpdateChainWrapper<User>(userMapper)
.eq(User::getName, "李一偉").eq(User::getAge, 30).set(User::getAge, 31).update();
//生成的sql: UPDATE user SET age=? WHERE name = ? AND age = ?

System.out.println(updatewrapper);

}
下面測試刪除方法
根據id刪除
/**
* deleteById 根據id
*
*/
@Test
public void deleteById(){
int i = userMapper.deleteById(1149166824346210305L);
//生成的sql : DELETE FROM user WHERE id=?
System.out.println(i);

}


普通方法刪除
/**
* deleteByMap
*
*/
@Test
public void deleteByMap(){
Map<String,Object> columnMap = new HashMap<>();
columnMap.put("name", "李一偉");
columnMap.put("age", 25);

int i = userMapper.deleteByMap(columnMap);
//生成的sql :DELETE FROM user WHERE name = ? AND age = ?
System.out.println(i);

}
 
        
  /**
* deleteBatchIds
*  批量刪除時使用
*/
@Test
public void deleteBatchIds(){


int i = userMapper.deleteBatchIds(Arrays.asList(74564564653453L,8754454676445L,85567L));
//生成的sql : DELETE FROM user WHERE id IN ( ? , ? , ? )
System.out.println(i);

}

/**
* deleteByWrapper
*
*Wrappers.<User>lambdaQuery() 可以傳入實體類 屬性會被生成where條件
*/
@Test
public void deleteByWrapper(){
LambdaQueryWrapper<User> wrapper = Wrappers.<User>lambdaQuery();
wrapper.eq(User::getAge,27).or().gt(User::getAge,40);


int i = userMapper.delete(wrapper);
//生成的sql :DELETE FROM user WHERE age = ? OR age > ?
System.out.println(i);

}


以條件構造器為參數的刪除
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM