ibatis多表关联的操作? 谁能给我一个IBATIS多表关联的列子啊?我自己写了一个。但是对一对一的关系,在查询的时候搞不懂怎么写?最好给我一个全面的教案咯。嘿嘿。我的QQ 124385410 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单示例:public class ParentClass{ private long pkId; private List<ChildClass> children = new ArrayList<ChildClass>(); ... getter & setters ...}public class ChildClass{ private long pkId; private ParentClass parentClass; ... getter & setter ...}ParentClass的XML<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL MAP 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap namespace="parent_class"> <typeAlias alias="theParent" type="name.pack.model.ParentClass"/> <typeAlias alias="theChild" type="name.pack.model.ChildClass"/> ... <resultMap id="parentResult" class="theParent"> <result property="pkId" column="pk_parentclass_id"/> <result property="children" column="pk_parentclass_id" select="parent_class.find_all_children"/> </resultMap> <resultMap id="childResult" class="theChild"> <result property="pkId" column="pk_childclass_id"/> </resultMap> <select id="find_all_children" parameterClass="long" resultMap="childResult" cacheModel="..."><![CDATA[ SELECT * FROM child_class WHERE my_parent_class = #pk_parentclass_id# ]]></select></sqlMap>ChildClass的XML<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL MAP 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap namespace="child_class"> <typeAlias alias="theParent" type="name.pack.model.ParentClass"/> <typeAlias alias="theChild" type="name.pack.model.ChildClass"/> ... <resultMap id="childResult" class="theChild"> <result property="pkId" column="pk_childclass_id"/> <result property="parentClass" column="my_parent_class" select="child_class.find_my_parent_class"/> </resultMap> <resultMap id="parentResult" class="theParent"> <result property="pkId" column="pk_parentclass_id"/> </resultMap> <select id="find_my_parent_class" parameterClass="long" resultMap="parentResult" cacheModel="..."><![CDATA[ SELECT * FROM parent_class WHERE pk_parentclass_id = #parentClassId# ]]></select></sqlMap>done. <select id="gcount" parameterClass="java.util.Map" resultClass="java.lang.String">select count(*) from $tableName1$ a,$tableName2$ bwhere a.id= b.idand b.rid=#rid#and b.gid=#gid#and b.fc is not null</select> STRUTS2 Convention零配置 放进jar包报错问题 Calendar类型的变量,如何用标签在jsp页面控制格式? 求助高手: SSH框架里页面如何请求一个Servlet(用来进行用户验证) spring注入问题 CA登陆问题请高手帮帮忙啊! 关于JAVA断点续传 java 数据抽取 源码 新手提问:关于freemarker生成静态文件的问题? 响应自动发送邮件 求问:框架、架构、构架、结构都什么意思(送100分) HTTP Status 500错误怎么解决呀? spring security2如果实现登陆后根据参数转发到不同的URL?
public class ParentClass{
private long pkId;
private List<ChildClass> children = new ArrayList<ChildClass>(); ... getter & setters ...
}public class ChildClass{
private long pkId; private ParentClass parentClass; ... getter & setter ...
}
ParentClass的XML<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL MAP 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap namespace="parent_class">
<typeAlias alias="theParent" type="name.pack.model.ParentClass"/>
<typeAlias alias="theChild" type="name.pack.model.ChildClass"/> ... <resultMap id="parentResult" class="theParent">
<result property="pkId" column="pk_parentclass_id"/>
<result property="children" column="pk_parentclass_id" select="parent_class.find_all_children"/>
</resultMap> <resultMap id="childResult" class="theChild">
<result property="pkId" column="pk_childclass_id"/>
</resultMap> <select id="find_all_children" parameterClass="long" resultMap="childResult" cacheModel="..."><![CDATA[
SELECT *
FROM child_class
WHERE my_parent_class = #pk_parentclass_id#
]]></select>
</sqlMap>
ChildClass的XML<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL MAP 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap namespace="child_class">
<typeAlias alias="theParent" type="name.pack.model.ParentClass"/>
<typeAlias alias="theChild" type="name.pack.model.ChildClass"/> ... <resultMap id="childResult" class="theChild">
<result property="pkId" column="pk_childclass_id"/>
<result property="parentClass" column="my_parent_class" select="child_class.find_my_parent_class"/>
</resultMap> <resultMap id="parentResult" class="theParent">
<result property="pkId" column="pk_parentclass_id"/>
</resultMap> <select id="find_my_parent_class" parameterClass="long" resultMap="parentResult" cacheModel="..."><![CDATA[
SELECT *
FROM parent_class
WHERE pk_parentclass_id = #parentClassId#
]]></select>
</sqlMap>
done.
<select id="gcount" parameterClass="java.util.Map" resultClass="java.lang.String">
select count(*) from $tableName1$ a,$tableName2$ b
where a.id= b.id
and b.rid=#rid#
and b.gid=#gid#
and b.fc is not null
</select>