两个表 Dept(部门)、 Emp(员工)
部门中的列名
id 部门id
name 部门名称
员工表中的列
id 员工ID
name 员工名称
deptId 部门ID
员工和部门为多对一得关系所以员工类中肯定要关联一个部门
public class Emp {
private String id ;
private String name;
private Dept dept;
}
public class Dept {
private String id ;
private String name;
}
getter setter方法省略
1、插入员工信息操作
因为员工表中有一列是部门ID所以做插入操作时要将一个部门对象set到员工对象中可以有下列两种操作
配置文件 Emp.xml
<insert id="insertEmp" parameterClass="Emp">
insert into emp (id, name, age, sex, birthday, deptId) values (#id#, #name#, #dept.id#)
</insert>
value 中的dept.id 为ibatis的进一步导航,因为emp对象中有一个部门对象,我们可以通过部门对象拿到部门id放到sqlz中。
2、查询员工时我们也想查到他的部门信息
配置文件 Emp.xml
方法1:采用一条SQL语句搞定
<resultMap class="Emp" id="resultEmp">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="dept.name" column="dname"/>
</resultMap>
<select id="selectById" parameterClass="String" resultMap="resultEmp">
select e.id, e.name name d.name dname from emp e, dept d where e.deptid = d.id and e.id=#id#
</select>
方法2:采用 N + 1条 SQL搞定
<resultMap class="Emp" id="resultEmp1">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="dept" column="deptId" select="selectDetpByEmp"/>
</resultMap>
<select id="selectDetpByEmp" resultClass="Dept" parameterClass="String">
select * from dept where id=#deptId#
</select>
3、删除 假如我要删除部门的同时将该部门对应的员工全部删除
一种方式我可以在业务方法中先用一条SQL将部门中所有的员工删除,然后再用一条SQL将部门删除
不知都ibatis中是否提供了级联删除的功能项hibernate那样,大家共同探讨一下
分享到:
相关推荐
一个Ibatis+Mysql的简单例子,有数据库文件。希望对初学者有所帮助!
ibatis and和or联合查询 .doc
iBatis做的按条件查询,没关联其他表,内带Mysql,适用于小型项目,hibernate是全自动化,如有朋友想学习下半自动化持久层框架,那就来下载这个看看吧。。
Ibatis查询语句里,可以使用多表查询,返回多个表的值.doc
使用ibatis配置的主子表关联查询的实例,一对多关系,在控制台打印,有log4j的使用,打印结果详细,(码云同步)
ibatis的实现(包含模糊查询、关联查询、增删改查) 数据库sql server 2005
ibatis配置多表关联(一对一、一对多、多对多
iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性
延迟加载 VS 联合查询(1:1) 复杂类型集合的属性 避免N+1 Select(1:M和M:N) 组合键值或多个复杂参数属性 支持Parameter Map和Result Map的数据类型 缓存Mapped Statement结果集 只读 VS 可读写 Serializable可...
9.3.4 联合使用readOnly属性和serialize属性 159 9.4 如何使用高速缓存模型中的标签 160 9.4.1 高速缓存的清除 160 9.4.2 设置高速缓存模型实现的特性 163 9.5 高速缓存模型的类型 163 9.5.1 MEMORY 163 9.5.2 LRU ...
ibatis 的小例子,主要是通过ibatis来处理2个数据表,其中数据表直接是有关系的
内容包里面是源代码,运行该例子的方式就是,使用里面的sql文件还原数据库。...使用cmd进入该解压包,运行 java -jar *.jar ibatis2spring....欲了解代码的详细,请访问作者博客,搜索《ibatis + Spring 多表查询》文章。
iBATIS[2]是一个可以设计和实现更好的 Java/.NET 应用程序持久化层的框架。iBATIS 把对象和存储过程或者使用 XML 描述符的 SQL 语句进行了关联。简单是 iBATIS 最大的优势
ibatis 开发指南 ibatis Quick Start............................................................................................ 5 准备工作.................................................................
IBatis完成学员的增删改查,无关联关系。
能支持懒加载、关联查询、继承等特性。 iBATIS不同于一般的OR映射框架。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射。iBATIS则是将SQL查询的参数和结果集映射到类。 所以,...
ibatis实战之一对多关联源代码 文章地址:http://blog.csdn.net/itmyhome1990/article/details/30050183
ibatis Quick Start............................................................................................5 准备工作...................................................................................
ibatis Quick Start............................................................................................5 准备工作...................................................................................
生成Ibatis Dao的工具类,可以手动配置路径 去生成DAO ENTITY sqlMap