Spring + iBatis 1对多表关系配置
来源:互联网 发布:sai软件无毒下载 编辑:程序博客网 时间:2024/06/04 00:21
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语法上面
要熟练才行,烦是烦点,熟练了也没什么
<?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语法上面
要熟练才行,烦是烦点,熟练了也没什么
- Spring + iBatis 1对多表关系配置
- Spring+ibatis 1对多表关系配置
- Spring+Ibatis处理1对多数据表的例子
- ibatis + Spring 多表查询(1)
- Spring配置iBatis多个SqlMapConfig.xml
- Spring配置iBatis多个SqlMapConfig.xml
- Spring配置iBatis多个SqlMapConfig.xml
- Spring配置iBatis多个SqlMapConfig.xml
- spring+ibatis事务处理配置
- spring+ibatis事务处理配置
- spring+ibatis事务处理配置
- spring+ibatis配置
- spring+struts2+ibatis配置
- spring+ibatis事务配置
- spring ibatis 配置事务
- spring+ibatis事务配置
- spring+ibatis配置问题
- spring配置ibatis
- sql 百万级数据库优化方案
- JAVA英文面试题(15道)
- 【Android.mk】android编译系统makefile文件Android.mk的写法
- 在cmd中FOR的用法
- 关于TScreen::TDataModule没有互斥,在Datasnap中引出的BUG
- Spring + iBatis 1对多表关系配置
- PL/SQL变长数组
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C#绘制曲线图
- Java学习—— Eclipse中查看JDK类库的源代码
- Struts.xml配置详解
- ibatis一对多关系映射技巧
- abap字符串拆分成固定的几部分
- 软中断与硬中断