mybatis plus使用model实现crud
阅读数:103 评论数:0
跳转到新版页面分类
python/Java
正文
一、概述
Model是mybatis plus自带的实体父类,直接定义Bean的时候实现Model类,该类的作用是能通过实体直接进行crud操作,而不需要进行调用dao,前提是“必须存在对应的原始mapper并继承baseMapper并且可以使用的前提下”。也就是说实际上行还是调用的dao的方法。
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
public class User extends Model<User> {
private Long id;
private String name;
private Integer age;
private String email;
}
必须写入mapper
public interface UserMapper extends BaseMapper<User> {
}
二、使用
Model类 自身实现了 insert() ,insertOrUpdate(),deleteById(Serializable id),deleteById() ,delete(Wrapper queryWrapper),updateById(),update(Wrapper updateWrapper),selectAll(),selectList(Wrapper queryWrapper),selectOne(Wrapper queryWrapper),selectPage(E page, Wrapper queryWrapper),selectCount(Wrapper queryWrapper)
@RunWith(SpringRunner.class)
@SpringBootTest
public class SampleTest {
@Test
public void aInsert() {
User user = new User();
user.setName("咩咩");
user.setAge(5);
user.setEmail("miemie@mp.com");
Assert.assertTrue(user.insert());
// 成功可以直接获取 ID
System.err.println("\n插入成功 ID 为:" + user.toString());
}
@Test
public void bDelete() {
Assert.assertTrue(new User().setId(3L).deleteById());
Assert.assertTrue(new User().delete(new QueryWrapper<User>()
.lambda().eq(User::getName, "Sandy")));
List<User> userList=new User().selectAll();
userList.forEach(u->System.out.print(u));
}
@Test
public void cUpdate() {
Assert.assertTrue(new User().setId(1L).setEmail("ab@c.c").updateById());
Assert.assertTrue(new User().update(new UpdateWrapper<User>().lambda()
.set(User::getAge, 3).eq(User::getId, 2)));
}
@Test
public void dSelect() {
Assert.assertEquals("ab@c.c", new User().setId(1L).selectById().getEmail());
User user = new User().selectOne(new QueryWrapper<User>().lambda().eq(User::getId, 2));
Assert.assertEquals("Jack", user.getName());
Assert.assertTrue(3 == user.getAge());
}
@Test
public void dSelectPage() {
IPage<User> userIPage=new Page<>(1,10);
LambdaQueryWrapper<User> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(User::getAge,20);
userIPage = new User().selectPage(userIPage,queryWrapper);
userIPage.getRecords().forEach(i -> System.out.println(i));
}
}
相关推荐
运行时,Eclipse 应用的结构是通过一个application model来描述的。这个application model包含了应用中独立的元素和它们的结构关系。
每个mode
每个plug-ins可以通过下面方式作用于application model:
(1)static contributions
通过文件,这些扩展称为fragment
add-ons可以加强应用的功能,你只需要替换相关的model 组件,就可以改变默认的Eclipse行为,例如在Eclipse的part中的drag和drop就是通过add-on实现的,还有ke
一、AbstractWrapper
用于生成sql的where条件,当第一个入参数为boolean condition时,表示该条件是否加入最后成的sql中。
1、allEq
allEq(Map<R,
一、@SqlParser
如果在程序中,有部分SQL不需要加上租户ID的表示,需要过滤特定的sql,可以通过@SqlParser(filter = true)的形式,只能作用于
1、pom.xml
<build>
<resources>
<resource>
<!-- xml放在java目录下--