`

ibatis学习之一对多关联

阅读更多

基于本人的这篇文章http://chenzheng8975.iteye.com/blog/1718765的基础上,对ibatis进行深入的学习:

Clazz.java:

package com.cz.model;

import java.util.ArrayList;
import java.util.List;

public class Clazz {
	private int id;
	private String classname;
	private List<Student> student=new ArrayList<Student>();
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getClassname() {
		return classname;
	}
	public void setClassname(String classname) {
		this.classname = classname;
	}
	public List<Student> getStudent() {
		return student;
	}
	public void setStudent(List<Student> student) {
		this.student = student;
	}
		
}

 

Student.java:

package com.cz.model;

public class Student {

	private int id;
	private String studentname;
	private int age;
	private int clazzid;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getStudentname() {
		return studentname;
	}
	public void setStudentname(String studentname) {
		this.studentname = studentname;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getClazzid() {
		return clazzid;
	}
	public void setClazzid(int clazzid) {
		this.clazzid = clazzid;
	}
	
}

 

Clazz.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>
	<typeAlias alias="Clazz"    type="com.cz.model.Clazz"/>
	<typeAlias alias="Student" type="com.cz.model.Student"/>
	<resultMap class="Clazz" id="get-clazz-result">
		<result property="id" column="id"/>
		<result property="classname" column="classname"/>
		<result property="student" column="id" select="getStudentByClazzId"/>
	</resultMap>
	<select id="getClazz" parameterClass="int" resultMap="get-clazz-result">
		<![CDATA[
			select id,classname
			from clazz
			where id=#id#
		]]>
	</select>
	<select id="getStudentByClazzId" parameterClass="int" resultClass="Student">
		select clazzid,studentname,age
		from student
		where clazzid=#clazzid#
	</select>
</sqlMap>

 

Mytest.java:

package com.cz.test;

import java.io.Reader;
import java.util.List;

import com.cz.model.Clazz;
import com.cz.model.Student;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class MyTest {

	/**
	 * @author xxx
	 * @since Jan 9, 2013
	 * @Description: TODO(用一句话描述这个方法的作用)
	 * @throws
	 * @param args
	 * void
	 */

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");   
	        SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);   
	        // sqlMap系统初始化完毕   
	        Clazz clazz=(Clazz) sqlMap.queryForObject("getClazz", new Integer(1));   
	        System.out.println("clazzid:"+clazz.getId()+",classname:"  
	                            +clazz.getClassname());   
	        List<Student> student=clazz.getStudent();   
	        for(int i=0;i<student.size();i++){   
	            System.out.println(student.get(i).getStudentname()+"-->"  
	                            +student.get(i).getAge());   
	        }   
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		

		
	}

}

 

分享到:
评论

相关推荐

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

    本篇将聚焦于iBatis的一对多关联映射实战,帮助开发者更好地理解和运用这一特性。 在关系型数据库中,一对多关联是非常常见的一种数据关系,例如一个用户可以拥有多个订单,一个部门可以包含多个员工等。在iBatis中...

    iBatis.rar 开发文档

    例如,它可能涵盖一对一、一对多、多对多的复杂关联映射,以及如何利用、标签处理嵌套结果。此外,可能会讲解如何使用Executor执行器进行批量操作,以及如何利用TypeHandler处理自定义数据类型。 通过阅读这三份...

    ibatis教程 输入参数详解

    SqlSessionFactory是ibatis的核心组件之一,负责创建SqlSession实例。可以通过以下两种方式构建SqlSessionFactory: 1. **从XML构建**:使用`SqlSessionFactoryBuilder`类的`build()`方法,传入包含配置信息的XML...

    ibatis_开发指南

    8. OR映射 - 对象关系映射(ORM)是iBATIS的核心特性之一,它将Java对象与数据库中的表进行映射,简化数据库操作。 9. iBATIS高级特性 - 包括数据关联(一对多、一对一)、延迟加载、动态映射、事务管理和缓存策略...

    iBatis2.0文档

    - **创建 SqlSessionFactory**:这是 iBatis 的核心组件之一,用于创建 SqlSession 对象。 - **SqlSession**:通过 SqlSessionFactory 创建,用于执行 SQL 操作。 - **定义 SQL 映射**:在 XML 文件中定义 SQL 语句...

    ibatis 开发指南.pdf

    - **XmlSqlMapClientBuilder**:用于构建SqlMapClient实例,它是ibatis的核心组件之一,负责解析XML配置文件并创建SqlMapClient对象。 - **SqlMapClient**:ibatis的核心接口,用于执行SQL语句并返回结果。 - **...

    ibatis2.3源码

    通过深入研究iBATIS 2.3的源码,开发者不仅可以了解其实现细节,还可以学习到如何设计一个高效的持久层框架,提升自己的编程技巧和设计能力。同时,这也为那些希望在现有基础上定制或优化iBATIS功能的开发者提供了...

    ibatis配置文件

    每个映射文件中定义了一组SQL语句及其映射规则,是ibatis的核心组成部分之一。 #### 三、总结 通过对`sqlMapConfig.xml`文件的深入解析,我们不仅了解了ibatis配置文件的基本结构,还掌握了如何通过配置文件来调整...

    iBatis学习总结

    在IT行业中,数据库管理和数据操作是至关重要的技能之一,而iBatis作为一款优秀的持久层框架,极大地简化了Java开发者与数据库之间的交互。本篇文章将深入探讨iBatis的学习总结,以及与SQL Server驱动包的关联。 ...

    ibatis-sqlmap-2.3.4.726-sources.jar.zip_birth84v_cutting1v2_ibat

    此外,iBatis的映射机制是其核心特色之一。它允许将SQL查询结果自动映射到Java对象,这主要依赖于ResultMap和ResultMapType。ResultMap定义了如何从数据库结果集中提取数据并映射到Java对象,包括字段映射、级联映射...

    backbone+bootstrap+ibatis+spring例子

    在IT行业中,构建高效、可维护的Web应用是开发者的核心任务之一。`Backbone.js`、`Bootstrap`、`iBatis` 和 `Spring` 是四个非常关键的技术组件,它们分别在前端架构、用户界面、数据库操作和后端服务方面发挥着重要...

    iBATIS实战

    书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的大部分知识点,可以作为iBATIS学习和Web开发的经典案例,非常值得深入研究。 本书既可为广大的开发人员(不仅仅是Web应用程序开发人员)...

    ibatis入门

    此外,教程还会介绍如何将查询结果映射到Java对象,这是iBATIS的重要功能之一。通过ResultMap,你可以定义复杂的结果集映射规则,包括一对一、一对多、多对多等关系的映射。 除此之外,iBATIS还支持自定义类型...

    ibatis 教程 帮助文档 中文版

    Ibatis,全称为“SQL Maps 2”,是一个优秀的开源持久层框架,主要应用于...对于Java Web开发者来说,理解并掌握Ibatis是必备的技能之一,因为它可以帮助你更好地处理数据库操作,使得业务逻辑和数据访问更加清晰分离。

Global site tag (gtag.js) - Google Analytics