SqlMapConfig.xml
BlogItem.xml
BlogCategory.xml
-------------------
注意:
iBatis多表操作时,如果配置文件多应当注意名称冲突,最好使用一个MAP配置使用namespace命名来区
别不同的resultMap
如:
一般现在1对多,多对多关系数据库操作用Hibernate方便多了.轻量级的iBatis配置起来在SQL语法上面
要熟练才行,烦是烦点,熟练了也没什么
- <?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语法上面
要熟练才行,烦是烦点,熟练了也没什么