通用mapper常用查询方法测试
- 查询
- List select(User record)
User user = new User();
//条件
user.setName("hky");
user.setAge(22);
//查询(参数是一个对象类型)
List<User> users = userMapper.select(user);
for (User user1 : users) {
System.out.println(user1);
}
- selectByPrimaryKey(Object key)
根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号
1. 直接给主键查询
User user2 = userMapper.selectByPrimaryKey(id);
//User(id=4, name=jim, age=55)
2. 结合其他条件
User user = new User();
//条件
user.setName("hky");
user.setAge(22);
User user2 = userMapper.selectByPrimaryKey(user);//null 相当于多条件查询
- selectOne()
根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号
1. 给出所有条件
User user = new User();
//条件
user.setId(6);
user.setName("hky");
user.setAge(22);
User user1 = userMapper.selectOne(user);
//User(id=6, name=hky, age=22)
2. 数据库中存在相同的name
User user = new User();
//条件
user.setName("tom");
User user1 = userMapper.selectOne(user);
//抛出异常如下:找到两个符合条件的结果
Expected one result (or null) to be returned by selectOne(), but found: 2
- selectAll() 查询所有数据
List<User> users = userMapper.selectAll();
for (User user1 : users) {
System.out.println(user1);
}
-
selectByExample() & selectOneByExample()
根据Example条件进行查询 前者返回时list 后者返回一个结果(如果返回结果超过一个则抛出异常)如:
Expected one result (or null) to be returned by selectOne(), but found: 2
Example example = new Example(User.class);
example.createCriteria().andEqualTo("name","hky").andEqualTo("age",22); //还可以继续添加条件
// 如果需要排序 注:中间用空格分开
example.setOrderByClause("age");//默认升序
example.setOrderByClause("age asc");//升序
example.setOrderByClause("age desc");//降序
List<User> users = userMapper.selectByExample(example);
for (User user1 : users) {
System.out.println(user1);
}