`
ysen
  • 浏览: 122200 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ibatis关联对象的使用04

阅读更多

 

 

1、两个相互关联的对象

public class Classes {
	private int id;
	private String cname;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getCname() {
		return cname;
	}
	public void setCname(String cname) {
		this.cname = cname;
	}
}
public class Student {
	private int id;
	private String name;
	private String sex;
	private Classes classes;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Classes getClasses() {
		return classes;
	}
	public void setClasses(Classes classes) {
		this.classes = classes;
	}
}

 

 

 

 

从student 中关联到class 对象

 

Student s = (Student)sqlMapper.queryForObject("findStudent", 1);
		System.out.println(s.getName()+"属于班级:"+s.getClasses().getCname());

 

使用别名映射

	<select id="findStudent" parameterClass="int" resultClass="Student">
		select
			s.name,
			s.sex,
			s.cid as "classes.id",
			c.cname as "classes.cname"
		from t_student s,t_classes c
		where s.cid = c.id and s.id = #id#
	</select>

 

 

a插入的用点导航 

 

	<insert id="saveStudent" parameterClass="Student">
		insert into t_student values (null,#name#,#sex#,#classes.id#)
	</insert>
	

 b写两条sql使用resultMap映射

 

<resultMap class="Student" id="findStudent-result">
		<result property="id" column="id"/>
		<result property="name" column="name"/>
		<result property="sex" column="sex"/>
		<result property="classes" column="cid" select="findClassesById"/>
	</resultMap>
	<select id="findStudent" parameterClass="int" resultMap="findStudent-result">
		select
			*
		from t_student
		where id = #id#
	</select>

 

	<select id="findClassesById" parameterClass="int" resultClass="Classes">
		select * from t_classes where id = #cid#
	</select>

 

 

2、

 

 

 

分享到:
评论
2 楼 d-jasonlee 2010-08-27  
<p>已经删除</p>
1 楼 fisherhe 2010-07-02  
    select 
        s.name, 
        s.sex, 
        s.cid as "classes.id", 
        c.cname as "classes.cname" 
    from t_student s,t_classes c 
    where s.cid = c.id and s.id = #id#

as 后面加引号是什么意思 解释一下 而且resultClass是 stutent 但这里要要查Class类的name 这样行不行

相关推荐

    ibatis总结 ibatis ibatis ibatis ibatis

    - 使用`EXISTS`子查询通常比直接关联查询更高效,尤其是在数据量大的情况下。 - 避免在`WHERE`子句中使用多个条件或`OR`操作符,而是应该使用`IN`操作符或者`UNION ALL`合并多个查询。 3. Struts、Spring与Ibatis...

    使用ibatis操作两个有关系的表

    总的来说,使用Ibatis操作两个有关系的表涉及了数据库设计、Java对象模型构建、XML配置、SQL编写等多个方面。熟练掌握这些技能,将有助于提升你在数据库操作上的专业素养。通过实践和理解Ibatis提供的各种映射策略,...

    ibatis使用及环境搭建文档

    2. **参数映射**: 使用`&lt;param&gt;`标签将Java对象的属性与SQL中的参数关联。 3. **结果映射**: 使用`&lt;resultMap&gt;`标签定义结果集的映射规则,将数据库查询结果转换为Java对象。 4. **事务管理**: Ibatis可以配合Spring...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis提供了多种方式来实现映射,如自动类型匹配、自定义类型处理器、复杂关联映射等。 7. **缓存机制**:Ibatis内置了本地缓存和二级缓存,可以提高数据读取速度。本地缓存作用于单个SqlSession,而二级缓存则...

    IBatis简单使用

    3. **结果映射**: IBatis可以自动将查询结果映射到Java对象,也可以自定义映射规则,处理复杂的数据类型和关联关系。 4. **事务管理**: IBatis提供了简单的事务控制,可以通过编程方式或者配置方式来管理事务的提交...

    ibatis2.0中文API

    iBATIS提供了集合映射和关联映射的方式来处理这些关系,使我们能够在Java对象中方便地操作这些复杂的数据结构。 其次,属性设置详解涉及到的是如何在iBATIS中设置和获取Java对象的属性,以及如何将这些属性与数据库...

    ibatis教程_查询指定id的单个对象

    本教程聚焦于如何使用Ibatis查询指定ID的单个对象,这对于日常的数据检索工作尤为重要。 首先,理解Ibatis的基本架构。Ibatis不是一个完整的ORM(对象关系映射)框架,而是介于SQL和Java之间的桥梁,允许开发者编写...

    ibatis开发指南 经典教材

    此外,ibatis还支持延迟加载,即只有在真正需要时才加载关联对象,从而避免了不必要的数据加载和内存消耗。 ### ibatis高级特性 #### 动态SQL ibatis的一个强大特性是动态SQL。它允许开发者在运行时根据不同的...

    iBatis详细使用手册(.net版)

    ### iBatis.Net详细使用手册知识点汇总 #### 1. iBatis.Net概述 - **定义**: iBatis.Net是一种轻量级的框架,用于.NET应用程序中的数据访问层。它并非传统的ORM(对象关系映射)工具,而是介于纯ADO.NET与全功能ORM...

    ibatis 的 jar包

    5. **结果集映射**:iBATIS能自动将查询结果映射到Java对象,包括单一结果、多个结果集以及复杂的一对多关联映射。 6. **参数映射**:iBATIS可以将Java方法的参数自动映射到SQL的参数,减少了代码量,提高了开发...

    IBATIS开发使用实例

    本文将围绕“IBATIS开发使用实例”这一主题,深入解析复杂SQL查询的应用,尤其是如何利用SQL进行多表关联、条件筛选以及聚合函数的使用。 ### IBATIS简介 IBATIS,现被称为MyBatis,是一种优秀的持久层框架,它...

    Ibatis 入门经典 实例

    2. 结果映射:使用 `&lt;resultMap&gt;` 定义结果集映射规则,可以进行复杂的列名和属性名映射,支持关联对象映射。 六、事务管理 Ibatis 支持编程式和声明式两种事务管理方式。编程式事务管理通过 `SqlSession` 的 begin...

    ibatis实战之一对多关联(源代码)

    延迟加载只在访问关联对象时才执行SQL,而级联加载则在获取主对象时一起加载所有关联对象。这需要在`&lt;collection&gt;`标签中设置`fetchType`属性。 ```xml ``` 6. **缓存策略** iBatis还支持缓存机制,可以将...

    ibatis api 帮助文档+IBATIS 开发文档

    3. **结果集映射**:详细解释了如何通过ResultMap定义结果集到Java对象的映射,包括基本类型、复杂类型、关联映射等。 4. **参数映射**:介绍如何使用parameterMap来指定输入参数,包括基本类型、Map对象、JavaBean...

    ibatis api,ibatis文档,ibatis说明文档

    通过阅读文档,你可以了解如何配置Ibatis、创建Mapper接口和XML映射文件,以及如何处理复杂的查询和关联。 在说明文档中,通常会包含以下内容: 1. 安装和配置:介绍如何将Ibatis集成到项目中,包括Maven或Gradle...

    ibatis教程 输入参数详解

    以及ibatis的概述、如何开始使用ibatis、构建SqlSessionFactory的方法(包括通过XML和不使用XML的方式)、获取SqlSession的过程、探索映射SQL语句的方法、命名空间的注意事项、作用域与生命周期的解释、mapper配置...

    ibatis基础知识详解

    Ibatis会自动将这些方法与XML配置文件中的SQL语句关联起来。 ## 3. Ibatis的主要功能 #### 3.1 动态SQL Ibatis支持动态SQL,允许在XML配置文件中根据条件拼接SQL语句,极大地提高了SQL的灵活性和可维护性。 ####...

Global site tag (gtag.js) - Google Analytics