基于本人的这篇文章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中...
例如,它可能涵盖一对一、一对多、多对多的复杂关联映射,以及如何利用、标签处理嵌套结果。此外,可能会讲解如何使用Executor执行器进行批量操作,以及如何利用TypeHandler处理自定义数据类型。 通过阅读这三份...
SqlSessionFactory是ibatis的核心组件之一,负责创建SqlSession实例。可以通过以下两种方式构建SqlSessionFactory: 1. **从XML构建**:使用`SqlSessionFactoryBuilder`类的`build()`方法,传入包含配置信息的XML...
8. OR映射 - 对象关系映射(ORM)是iBATIS的核心特性之一,它将Java对象与数据库中的表进行映射,简化数据库操作。 9. iBATIS高级特性 - 包括数据关联(一对多、一对一)、延迟加载、动态映射、事务管理和缓存策略...
- **创建 SqlSessionFactory**:这是 iBatis 的核心组件之一,用于创建 SqlSession 对象。 - **SqlSession**:通过 SqlSessionFactory 创建,用于执行 SQL 操作。 - **定义 SQL 映射**:在 XML 文件中定义 SQL 语句...
- **XmlSqlMapClientBuilder**:用于构建SqlMapClient实例,它是ibatis的核心组件之一,负责解析XML配置文件并创建SqlMapClient对象。 - **SqlMapClient**:ibatis的核心接口,用于执行SQL语句并返回结果。 - **...
通过深入研究iBATIS 2.3的源码,开发者不仅可以了解其实现细节,还可以学习到如何设计一个高效的持久层框架,提升自己的编程技巧和设计能力。同时,这也为那些希望在现有基础上定制或优化iBATIS功能的开发者提供了...
每个映射文件中定义了一组SQL语句及其映射规则,是ibatis的核心组成部分之一。 #### 三、总结 通过对`sqlMapConfig.xml`文件的深入解析,我们不仅了解了ibatis配置文件的基本结构,还掌握了如何通过配置文件来调整...
在IT行业中,数据库管理和数据操作是至关重要的技能之一,而iBatis作为一款优秀的持久层框架,极大地简化了Java开发者与数据库之间的交互。本篇文章将深入探讨iBatis的学习总结,以及与SQL Server驱动包的关联。 ...
此外,iBatis的映射机制是其核心特色之一。它允许将SQL查询结果自动映射到Java对象,这主要依赖于ResultMap和ResultMapType。ResultMap定义了如何从数据库结果集中提取数据并映射到Java对象,包括字段映射、级联映射...
在IT行业中,构建高效、可维护的Web应用是开发者的核心任务之一。`Backbone.js`、`Bootstrap`、`iBatis` 和 `Spring` 是四个非常关键的技术组件,它们分别在前端架构、用户界面、数据库操作和后端服务方面发挥着重要...
书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的大部分知识点,可以作为iBATIS学习和Web开发的经典案例,非常值得深入研究。 本书既可为广大的开发人员(不仅仅是Web应用程序开发人员)...
此外,教程还会介绍如何将查询结果映射到Java对象,这是iBATIS的重要功能之一。通过ResultMap,你可以定义复杂的结果集映射规则,包括一对一、一对多、多对多等关系的映射。 除此之外,iBATIS还支持自定义类型...
Ibatis,全称为“SQL Maps 2”,是一个优秀的开源持久层框架,主要应用于...对于Java Web开发者来说,理解并掌握Ibatis是必备的技能之一,因为它可以帮助你更好地处理数据库操作,使得业务逻辑和数据访问更加清晰分离。