有两个类:
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之分表分库解决方案",这是一个针对高并发、大数据处理的有效策略。Ibatis,作为一个轻量级的Java持久层框架,允许开发者将SQL语句直接写在配置文件或映射接口中,提供了灵活的数据访问接口。...
iBatis是一个O/R Mapping解决方案, iBatis最大的特点就是小巧,上手很快。如果你不需要太多复杂的功能,iBatis是能满足你的要求又足够灵活的最简单的解决方案。下面我们看一个最简单的入门例子,是《ibatis 开发...
iBatis是一个轻量级的Java持久层框架,它提供了SQL映射框架,将SQL语句与Java代码分离,使得数据库访问更为灵活和可控。在本压缩包中,你将找到一系列关于iBatis的学习资源,包括PDF文档、实例代码等,这些都是深入...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的繁琐细节。这个"第一个ibatis例子"是一个典型的入门教程,旨在帮助初学...
iBatis,一个优秀的Java持久层框架,以其轻量级、灵活的特性在众多ORM(Object-Relational Mapping)框架中独树一帜。iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,使得开发者可以自由地编写SQL...
标题 "iBatis 第一个程序" 暗示我们将探讨如何使用 iBatis,这是一个流行的持久层框架,用于简化 Java 应用程序中的数据库操作。iBatis 提供了一种方式,将 SQL 查询与应用程序代码分离,使得开发更加灵活且易于维护...
《第一个iBatis3工程详解》 在Java开发领域,iBatis作为一个优秀的持久层框架,因其简单易用、灵活性高而备受青睐。本篇文章将深入探讨如何搭建第一个iBatis3工程,以及该工程中涉及到的核心概念和技术点。 首先,...
iBatis是一个轻量级的Java持久层框架,它的核心理念是将SQL语句与Java代码分离,使得开发者可以更加灵活地控制SQL的执行。在本项目中,我们将深入探讨iBatis的基本概念、配置、映射文件以及如何在实际应用中使用它。...
因此,使用 `HashMap` 这种灵活的数据结构来存储查询结果便成为了一个很好的解决方案。 #### 3. 如何配置 ibatis 映射文件 在 ibatis 中,可以使用 `<select>` 元素来定义 SQL 查询,并通过 `resultClass` 属性...
iBATIS是一个由Clinton Begin创建,目前由Apache基金会支持的持久化框架,它专注于数据库查询的简化,尤其在JDBC编程方面提供了极大的便利。相对于全自动化ORM解决方案如Hibernate,iBATIS被称为“半自动化”ORM实现...
【标题】"ibatis的一个简单demo用户登录"指的是使用iBATIS这个轻量级的Java持久层框架实现的一个用户登录功能的示例项目。iBATIS是SQL Maps的升级版,它提供了一种将SQL语句与Java代码分离的方式,使得数据库访问...
在Java Web开发中,iBATIS(现在被称为MyBatis)是一个流行的持久层框架,它提供了灵活的SQL映射机制,使得开发者可以更方便地操作数据库。本篇将深入讲解iBATIS一对一映射的概念、配置及应用,帮助你更好地理解和...
iBATIS并非传统的对象关系映射(ORM)工具,而是采取了一种混合式解决方案,融合了多种数据库操作方式的理念。它被定义为一个data mapper,主要功能是在对象模型和关系数据库之间建立映射,以实现数据的传递,同时...
Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...
自己写了一个Ibatis入门文件 JDK用的1.4 ibatis用的2.3.0 一定要注意版本问题,不然出现本本不兼容很费劲,我调了一上午,注意一定要用JDK1.4 ibatis2.3.0! 数据库自己建一张简单的表就行了,特别说明 只适合新手...
在IT行业中,数据库操作是必不可少的一部分,而Ibatis作为一款流行的Java持久层框架,它使得SQL与Java代码更好地结合,提供了灵活的数据库操作方式。然而,数据处理时遇到的编码问题,如乱码,常常会给开发者带来...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...
标题 "ibatis" 提到的是一个著名的开源Java持久层框架——iBATIS,它在过去的Web应用程序开发中占据了重要地位。iBATIS 提供了一种将SQL查询与Java代码分离的方法,增强了数据库操作的灵活性和可维护性。"ibatis in ...
2. **Statement**:代表了一个SQL语句,包括PreparedStatement和SimpleStatement两种类型。PreparedStatement支持预编译,提高性能并防止SQL注入;SimpleStatement则用于简单的SQL执行。 3. **ParameterMap**和**...