无实体类是指的查询结果为这种的吗
select count()
select average()
该回答引用GPT:
在MyBatis中,我们可以进行各种查询操作,如果查询结果没有对应的实体类可以封装,那么MyBatis就会将查询结果封装到一个Map对象中,key为每一列的列名,value为对应的值。
举个例子,假设我们有一张学生表,表中有id、name、age三列。我们可以通过以下查询语句查询学生姓名和平均年龄:
SELECT name, AVG(age) FROM student;
以上语句的查询结果可能是这样的:
{"name":"张三","AVG(age)":22.5}
此时我们无法通过一个实体类来封装这个结果,但我们可以使用一个Map对象来存储这个查询结果,并且可以通过Map对象的get方法获取对应的值。
总之,在MyBatis中,如果查询结果无法对应实体类,我们可以使用Map对象来封装,方便获取查询结果。
如还有疑问,可留言帮助解决。
其实实体类也可以理解为map 啊 ,就是返回一个键值对
我们一般都是用对象来接收查询结果 例如 List
如果不想要实体对象可以用 List<Map<String,Object>>
万物基于Map,实体类不也可以理解为key固定的Map吗
可以参考官网对于结果映射的详细描述: https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#%E7%BB%93%E6%9E%9C%E6%98%A0%E5%B0%84