Mybatis的各种查询功能

本文阅读 3 分钟
首页 代码,Java 正文

使用Mybatis进行查询的时候,查询出来的数据可能有一条数据,也可能是多条,我们就得根据返回数据的条数来指定返回类型,如果记录是多条,那么返回值类型就不能是实体类。

如果查询出来有多条记录,但是我们方法的返回类型是实体类,就会报下面的错误 img img

org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne() 因为,当我们的方法返回值类型是实体类,底层会调用selectOne方法,这个方法的返回数据只能有一个

<font color="blue" size="4">总结:查询出来的记录有一条,返回值类型可以是实体类,也可以是集合,如果记录有多条,返回值类型可以设置成List集合,也可以是Map集合,但是一定不能设置成实体类类型,不然报错TooManyResultsException
在这里插入图片描述
在这里插入图片描述</font>

我们有的时候,希望能够查询出来有多少条记录,那么SQL语句就使用了分组函数,那么查询出来的结果应该是单行单列

/** * 查询用户信息的总记录数 * @param * @return */
 Integer getCount();

在这里插入图片描述这里是引用
<font color="blue" size="4">大家有没有感觉很神奇,为什么会是这个样子的呢?原因是因为mybatis设置了类型别名
MyBatis 已经为Java类型取好的别名(自己起别名时小心重复)
  MyBatis已经为许多常见的 Java 类型内建了相应的类型别名。它们都是大小写不敏感的,我们在起别名的时候千万不要占用已有的别名。</font>

img

<font size="4" color="blue">当返回数据是一条在这里插入图片描述
如果我们查询出来的结果没有一个实体类与之相对应,我们就可以把返回值类型设置成为Map集合
看到上面查询记录为一条的时候,我们用map可以查询出记录,我们再来看看如果记录是多条,用刚刚的方法能不能查询出来</font>

Map<String,Object> getUserMap();

这里是引用
<font color="blue" size="4">解决方法:把多个map放在list集合中
List<Map<String,Object>> getUserMapToList();</font>

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://zengyihong.blog.csdn.net/article/details/123890920
-- 展开阅读全文 --
安全面试之XSS(跨站脚本攻击)
« 上一篇 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复