通用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);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义