Spring + iBatis 1对多表关系配置
SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <sqlMap resource="com/model/domain/map/BlogCategory.xml"/> <sqlMap resource="com/model/domain/map/BlogItem.xml"/> </sqlMapConfig>
BlogItem.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> <typeAlias alias="BlogItem" type="com.model.domain.BlogItem" /> <resultMap id="get-blogitem-result" class="BlogItem"> <result property="id" column="ID" columnIndex="1" /> <result property="title" column="TITLE" columnIndex="2" /> <result property="content" column="CONTENT" columnIndex="3" /> <result property="createTime" column="CREATETIME" columnIndex="4" /> <result property="blogCategory.id" column="ID"/> <result property="blogCategory.name" column="NAME"/> <result property="blogCategory.description" column="DESCRIPTION"/> </resultMap> <select id="getBlogItemById" parameterClass="int" resultMap="get-blogitem-result"> select * from BLOG_ITEMS,BLOG_CATEGORYS WHERE CATEGORYID=BLOG_CATEGORYS.ID AND ID=#value# </select> </sqlMap>
BlogCategory.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> <typeAlias alias="BlogCategory" type="com.model.domain.BlogCategory" /> <resultMap id="get-blogcategory-result" class="BlogCategory" groupBy="id"> <result property="id" column="ID" columnIndex="1" /> <result property="name" column="NAME" columnIndex="2" /> <result property="description" column="DESCRIPTION" columnIndex="3" /> <result property="itemList" resultMap="get-blogitem-result"/> </resultMap> <select id="getBlogCategoryById" parameterClass="int" resultMap="get-blogcategory-result"> select CATE.ID,CATE.NAME,CATE.DESCRIPTION,ITEM.ID,ITEM.TITLE,ITEM.CONTENT, ITEM.CREATETIME,ITEM.CATEGORYID FROM BLOG_CATEGORYS as CATE left outer join BLOG_ITEMS AS ITEM on CATE.ID = ITEM.CATEGORYID WHERE CATE.ID = #value#; </select> </sqlMap>
-------------------
注意:
iBatis多表操作时,如果配置文件多应当注意名称冲突,最好使用一个MAP配置使用namespace命名来区
别不同的resultMap
如:
<sqlMap namespace="XXX"> <result property="itemList" resultMap="XXX.get-blogitem-result"/>
一般现在1对多,多对多关系数据库操作用Hibernate方便多了.轻量级的iBatis配置起来在SQL语法上面
要熟练才行,烦是烦点,熟练了也没什么
相关推荐
Dullonjiang 2020-01-23
与卿画眉共浮生 2011-06-25
yierxiansheng 2014-06-18
登峰小蚁 2019-12-24
plane 2017-10-19
踩风火轮的乌龟 2019-10-23
pandapanda 2014-05-08
阿泰 2014-07-02
shouen 2016-04-26
whileinsist 2012-04-07
spprogrammer 2018-01-25
Coohx 2017-12-05
AndroidOliver 2012-05-14
BruceWayne 2014-12-02
liubang000 2014-05-30
KOJ 2013-11-26
CXC0 2013-08-28