MP为我们封装了诸多DB方法,下面了解其使用方式。
注解:
@TableId(type = IdType.AUTO)//IdType主键类型,指定为自增长
private Long id;
@TableField(value = "email")//映射至表中不同命字段
private String mail;
@TableField(exist = false)//表中不存在
private int power;
@TableField(select = false)//查询命令不返回该字段值
private String password;
通用CRUD:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:applicationContext.xml"})
public class test {
@Autowired
private UserMapper mapper;
//插入操作
@Test
public void testInsert() {
User user = new User();
user.setAge(0);
user.setUserName("kvno");
user.setMail("@gmail");
user.setPassword("123123");
int result = mapper.insert(user);//返回Integer为受影响的行数
System.out.println(result);
System.out.println(user.getId());//MP中自增后的id会回传
}
//更改操作
@Test
public void testUpdateById() {
//按id操作
User user = new User();
user.setId(6L); //主键,类型为Long故加一个L
user.setAge(21);
int result = mapper.updateById(user);
System.out.println(result);
}
@Test
public void testUpdate() {
User user = new User();
user.setAge(22);
//通过QueryWrapper设置筛选条件
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("id", 6); //equal:对表中字段id=6的数据进行操作
int result = mapper.update(user, wrapper);
System.out.println(result);
}
@Test
public void testUpdate2() {
//通过UpdateWrapper设置筛选条件
UpdateWrapper<User> wrapper = new UpdateWrapper<>();
wrapper.eq("id", 6).set("age", 23);
int result = mapper.update(null, wrapper);
System.out.println(result);
}
//删除操作
@Test
public void testDelete() {
User user = new User();
user.setAge(20);
user.setName("张三");
//将对象作为删除条件
QueryWrapper<User> wrapper = new QueryWrapper<>(user);
int result = mapper.delete(wrapper);
System.out.println(result);
}
@Test public void testDeleteById() {
//按id删除
int result = mapper.deleteById(6L);
System.out.println(result);
}
@Test public void testDeleteByMap() {
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("age",20);
columnMap.put("name","张三");
//将columnMap中的元素设置为删除的条件,条件之间为and关系
int result = mapper.deleteByMap(columnMap);
System.out.println(result);
}
@Test
public void testDeleteBatchIds() {
//根据id集合批量删除
int result = mapper.deleteBatchIds(Arrays.asList(1L,10L,20L));
System.out.println("result = " + result);
}
//查询操作
@Test
public void testSelectById() {
//根据id查询数据
User user = mapper.selectById(2L);
System.out.println(user);
}
@Test
public void testSelectByMap() {
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("age",18);
columnMap.put("name","张三");
//将columnMap中的元素设置为删除的条件,条件之间为and关系
List<User> users = mapper.selectByMap(columnMap);
for (User user : users) {
System.out.println(user);
}
}
@Test
public void testSelectBatchIds() {
//根据id集合批量查询
List<User> users = mapper.selectBatchIds(Arrays.asList(2L, 3L, 10L));
for (User user : users) {
System.out.println(user);
}
}
@Test
public void testSelectOne() {
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.eq("name", "李四");
//根据条件查询一条数据,如果结果超过一条会报错
User user = mapper.selectOne(wrapper);
System.out.println(user);
}
@Test
public void testSelectList() {
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.gt("age", 23); //条件为age大于23
//根据条件查询所有数据
List<User> users = mapper.selectList(wrapper);
for (User user : users) {
System.out.println(user);
}
}
@Test
public void testSelectPage() {
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.gt("age", 20);
Page<User> page = new Page<>(1,1);//要查询的页码;每页数据条数
//根据条件查询数据
IPage<User> iPage = mapper.selectPage(page, wrapper);
System.out.println("数据总条数:" + iPage.getTotal());
System.out.println("总页数:" + iPage.getPages());
List<User> users = iPage.getRecords();
for (User user : users) {
System.out.println(user);
}
}
}