ibatis的级联查询、resultmap和resultclass区别
来源:互联网 发布:java集成测试工具 编辑:程序博客网 时间:2024/05/28 23:20
今天用ibatis进行一对多级联查询的时候,一直出现多方的表不能查询到的问题
最后发现是关于resultclass和resultmap的含义没有搞清楚
下面是我的主要代码:
User bean包含一个Files的list
public class User {private Integer uid;// 主键private String uname;// 名称private String password;private String phonenumber;private String email;private List<Files> files ;public Integer getUid() {.............
sql配置:一个user可对应多个files
<span style="white-space:pre"></span><typeAlias alias="user" type="com.bh.demo.bean.User" /><typeAlias alias="files" type="com.bh.demo.bean.Files"/><resultMap id="user" class="user"><result column="uid" property="uid" jdbcType="DECIMAL" /><result column="uname" property="uname" jdbcType="VARCHAR" /><result column="password" property="password" jdbcType="VARCHAR" /><result column="phonenumber" property="phonenumber" jdbcType="VARCHAR" /><result column="email" property="email" jdbcType="VARCHAR" /><result column="uid" property="files" select="<u>User.getFilesByUserId</u>" /></resultMap><resultMap class="files" id="files"><result property="fid" column="fid"/><result property="fname" column="fname"/><result property="fpath" column="fpath"/><result property="uid" column="uid"/></resultMap>
User.getFilesByUserId方法sql
<select id="getFilesByUserId" parameterClass="int" resultClass="files">select fid,fname,fpath,uid from files where uid=#value# </select>
查询User的sql
<select id="login" resultClass="user" parameterClass="java.util.Map">select * from user</select>
但最后进行查询的时候总是得不到User 里面的Files的list
.....
经过一番查找问题发现是User查询的sql配置问题,也就是resultclass和resultmap的问题
resultclass:当查找结束后根据你所配置的类添加数据,当然要保证bean的属性名和表属性名相同,没有严格的一一对应,查询出来的数据你的bean有就放没有就不管
resultmap:根据xml文件的<resultmap>配置的参数来对应到各个数据项里面,当bean的属性名和表的属性名不同时必须得用resultmap进行配置,还有就是关键的是:当进行 级联查询时,由于bean里面的list没有和表中的任何属性对应,所以就必须需要resultmap来配置,并且查询结果参数也必须用resultmap,而不能用 resultclass
所以我开始用resultclass=“user”无论如何都得不到files,因为根本就没有执行级联查询的User.getFilesByUserId这个sql语句,所以需要如下查询:
<select id="login" resultMap="user" parameterClass="java.util.Map">select * from user</select>
0 0
- ibatis的级联查询、resultmap和resultclass区别
- ibatis ResultClass和ResultMap的区别
- Ibatis中resultMap和resultClass的区别
- ibatis中resultMap和resultClass的区别
- ibatis中resultMap和resultClass的区别
- ibatis中resultMap和resultClass的区别
- ibatis中resultMap和resultClass(Mybatis的resultType)的区别
- Ibatis resultMap和resultClass
- Ibatis resultMap和resultClass
- ibatis的resultClass与resultMap
- ibatis的resultClass与resultMap
- ibatis的sqlMap的配置的resultMap元素和resultClass元素的区别。
- ibatis中的resultClass,parameterClass,resultMap,resultType的使用与区别
- ibatis中resultMap和resultClass的区别 以及parameterClass 的取值
- ibatis使用resultMap处理级联查询
- 通过iBatis的queryForMap方法比较resultClass与resultMap
- 通过iBatis的queryForMap方法比较resultClass与resultMap
- 通过iBatis的queryForMap方法比较resultClass与resultMap
- git ssh——Permission denied (publickey).
- Java String字符串和Unicode字符相互转换代码
- linux主机的内存最大容量
- slf4j+logback搭建超实用的日志管理模块
- ofbiz 安全组
- ibatis的级联查询、resultmap和resultclass区别
- 基于DL的计算机视觉(6)-- 神经网络
- 【福利】光荣之路公开课视频下载大全
- shader笔记(1)
- 覆盖、删除文件提示正由另一进程使用,因此该进程无法访问该文件
- BFC块级格式化上下文简述
- 杭电OJ 1406
- 你的互联网+项目为何敏捷不起来?五、微服务与业务敏捷、敏捷方法、云计算、DevOps、SOA之间的因果
- 数据库使用连接池到eclipse再到安卓studio的完整流程(对象)