有两个类:
public class Person {
private Integer id;
private String firstName;
private String lastName;
private String email;
private Department dept;
// getter and setter methods
}
public class Department {
private Integer id;
private String name;
private Set<Person> persons;
//getter and setter methods
}
现在通过Person提供的一个ID号,来查询一条person记录,记录包括:
id
firstName
lastName
email
dept.id
dept.name
SQL MAP xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org//dtd//sql-map-2.dtd">
<sqlMap namespace="Person">
<typeAlias alias="Person" type="com.ymq.ibatis.Person"/>
<typeAlias alias="Dept" type="com.ymq.ibatis.Department"/>
<resultMap id="get-person-result" class="Person">
<result property="id" column="id"/>
<result property="firstName" column="firstName"/>
<result property="lastName" column="lastName"/>
<result property="email" column="email"/>
<result property="dept" column="dept_id" select="Person.getDept"/>
</resultMap>
<resultMap id="get-dept-result" class="Dept">
<result property="id" column="id"/>
<result property="name" column="name"/>
</resultMap>
<select id="getDept" parameterClass="int" resultMap="get-dept-result">
select * from department where id=#value#
</select>
<select id="getPerson" resultMap="get-person-result">
select * from person where id=#value#
</select>
</sqlMap>
测试代码
@SuppressWarnings("unchecked")
public static void main(String[] args) throws IOException ,SQLException{
Reader reader = Resources.getResourceAsReader("com/ymq/ibatis/SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader );
System.out.println("查询所有的用户信息");
Person person = (Person)sqlMap.queryForObject("Person.getPerson", 1);
System.out.println("id:"+person.getId());
System.out.println("name:"+person.getFirstName()+person.getLastName());
System.out.println("deptId:"+person.getDept().getId());
System.out.println("deptName:"+person.getDept().getName());
}
报错:ibatis There is no statement named “getDept”。。。。
仔细观察知道
<resultMap id="get-person-result" class="Person">
<result property="id" column="id"/>
<result property="firstName" column="firstName"/>
<result property="lastName" column="lastName"/>
<result property="email" column="email"/>
<result property="dept" column="dept_id" select="getDept"/>
这句:<result property="dept" column="dept_id"
select="getDept"/>
红色字体要用select="Person.getDept"代替,因为设置了命名空间。
分享到:
相关推荐
iBatis是一个O/R Mapping解决方案, iBatis最大的特点就是小巧,上手很快。如果你不需要太多复杂的功能,iBatis是能满足你的要求又足够灵活的最简单的解决方案。下面我们看一个最简单的入门例子,是《ibatis 开发...
ibatis学习 ibatis总结 ibatis ibatis ibatis
我们也说过,iBATIS是一个混合式的解决方案(hybrid solution),借鉴了多种操作关系数据库的方法的理念。那么iBATIS到底是什么呢?这一章就来回答这个问题。 iBATIS是一种data mapper。Martin Fowler在他的...
ibatis ,入门例子
ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料
ibatis 乱码解决 ibatis乱码 gbk iso_8859_1 乱码
iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2002年发起的开放源代码项目。于2010年6月16号被谷歌托管,改名为MyBatis。是一个基于SQL映射支持Java和·NET的持久层框架。 iBATIS提供的...
其中包含iBatis精讲PDF iBatis实例 iBatis开发指南 iBatis分页 spring+iBatis处理1对多数据表实例等等若干帮助文档。希望可以帮助大家学习iBatis...
ibatis demo,ibatis例子,ibatis示例
iBATIS 级联iBATIS 级联iBATIS 级联
ibatis
iBatis学习,新手进,iBatis简单易上手。希望对广大学习者有所帮助。
ibatis 一个简单的项目详解及配置,方便初学者更快地了解ibatis
NULL 博文链接:https://xylong.iteye.com/blog/1845667
ibatis的原码 ibatis源码 ibatis源码 ibatis源码
Ibatis一对一映射提示,需要学习的同学请关注,谢谢。
可以针对一个表中一个或几个字段进行更新等操作。Hibernate会更新所有的字段。 (3) ibatis可维护性高一点。 2.Ibatis需要的jar包 (1) ibatis-2.3.4.726.jar (3) 数据库的连接包 3.Ibatis的使用 (1) 建数据库表和...
使用iBATIS只要五分钟我们就可以创建一个完整的应用程序了——当然这不是大型的ERP(Enterprise Resource Planning)解决方案,也不是大规模的电子商务网站,只是一个简单的命令行工具,它可以执行iBATIS SQL Map中...
自己写了一个Ibatis入门文件 JDK用的1.4 ibatis用的2.3.0 一定要注意版本问题,不然出现本本不兼容很费劲,我调了一上午,注意一定要用JDK1.4 ibatis2.3.0! 数据库自己建一张简单的表就行了,特别说明 只适合新手...
利用ibatis实现一对一、多对一的示例代码。每种关系用两种方式实现,具体的讲解可看我的博客http://blog.csdn.net/duwenchao1986/article/details/8565386