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语法上面
要熟练才行,烦是烦点,熟练了也没什么
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值