iBatis是一款使用方便的数据访问工具,也可作为数据持久层的框架。和ORM框架(如Hibernate)将数据库表直接映射为Java对象相比,iBatis是将SQL语句映射为Java对象。相对于全自动SQL的Hibernate,iBatis允许你对SQL有完全控制权,可以视为半自动的数据访问工具。
iBatis的最大优点是简便,轻量级,仅需iBatis的一个jar和数据库的驱动即可运行,而且使用iBatis仅需掌握SQL和XML的用法即可,而不像Hibernate那样需要配置对象间的关系。学习iBatis的过程要比Hibernate快很多,在项目中,若人员水平不大一致时,使用iBatis代替Hibernate作为数据访问工具可以有效提升开发效率。
项目结构
数据库用的Oracle scott账户下的Dept表
模型类
package ibatis.model;
public class Dept {
private int deptNo;
private String dName;
private String loc;
public int getDeptNo() {
return deptNo;
}
public void setDeptNo(int deptNo) {
this.deptNo = deptNo;
}
public String getDName() {
return dName;
}
public void setDName(String name) {
dName = name;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
public String toString() {
return "deptNo : " + deptNo + " dname : " + dName + " loc : " + loc;
}
}
模型配置文件 Dept.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="Dept" type="ibatis.model.Dept" />
<select id="getAllDepts" resultClass="Dept">
select *
from dept
</select>
</sqlMap>
数据库配置文件jdbc.properties
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc.username=scott
jdbc.password=tiger
iBatis配置文件SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<properties resource="jdbc.properties" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${jdbc.driverClassName}" />
<property name="JDBC.ConnectionURL" value="${jdbc.url}" />
<property name="JDBC.Username" value="${jdbc.username}" />
<property name="JDBC.Password" value="${jdbc.password}" />
</dataSource>
</transactionManager>
<sqlMap resource="ibatis/resources/Dept.xml" />
</sqlMapConfig>
测试类:
package ibatis;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import ibatis.model.Dept;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class IBatisDemo {
public static void main(String[] args) throws IOException, SQLException {
String config = "ibatis/SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader(config);
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
List<Dept> list = sqlMap.queryForList("getAllDepts");
for (Dept dept : list) {
System.out.println(dept);
}
}
}
输出结果:
deptNo : 88dname : 装备部loc : 北京
deptNo : 99dname : 交通部loc : null
deptNo : 55dname : Advloc : Beijing
deptNo : 56dname : Secloc : Shanghai
deptNo : 10dname : ACCOUNTINGloc : NEW YORK
deptNo : 20dname : RESEARCHloc : DALLAS
deptNo : 30dname : SALESloc : CHICAGO
deptNo : 40dname : OPERATIONSloc : BOSTON
- 大小: 62.1 KB
分享到:
相关推荐
- 按照`proc_time`排序,并且只取第一条记录(`rownum=1`)。 #### 三、iBATIS参数绑定机制 在上述SQL语句中,可以看到`#acct#`和`#org#`这样的参数绑定方式。这种方式是iBATIS中常见的参数绑定方式之一,表示在...
《第一个iBatis3工程详解》 在Java开发领域,iBatis作为一个优秀的持久层框架,因其简单易用、灵活性高而备受青睐。本篇文章将深入探讨如何搭建第一个iBatis3工程,以及该工程中涉及到的核心概念和技术点。 首先,...
【标题】:“ibatis 第一个helloWorld” 【知识点详解】: Ibatis,作为一个轻量级的持久层框架,是Java开发中的重要工具,它将SQL语句与Java代码分离,提高了代码的可读性和可维护性。在这个“ibatis 第一个hello...
3. **iBATIS-SqlMaps-2-Tutorial_cn.pdf**:这是iBATIS SQL Maps 2的中文教程,可能包含一系列逐步的教学章节,指导初学者从零开始学习iBATIS,包括安装环境、创建第一个SQL Map、处理结果集、使用动态SQL以及处理...
而`OSCache`则是一个高性能的第三方缓存组件,提供了更强大的缓存功能。 总之,《ibatis开发指南》是一本详尽介绍了ibatis框架的教材,不仅涵盖了ibatis的基础概念和核心组件,还深入探讨了其高级特性和应用场景。...
这个框架的主要目的是简化Java应用程序与数据库之间的交互,通过XML或注解方式将SQL语句映射到Java方法,实现了数据访问逻辑与业务逻辑的分离,提升了开发效率。 在“iBATIS-SqlMaps中文教程集合”中,你将找到四本...
这个文件定义了数据源、事务管理器等全局配置,是启动Ibatis的第一步。例如,数据源配置通常包含数据库驱动、URL、用户名和密码等信息。 4. **Mapper配置与映射文件** 映射文件(如:UserMapper.xml)是Ibatis实现...
它可能涵盖了从安装iBATIS到创建第一个SQL Map,再到执行查询和更新操作的全过程。 《iBATIS_DBL-2.1.5.582.zip》是iBATIS数据库库的安装包,其中包含了运行iBATIS应用程序所需的JAR文件和其他依赖项。解压后,...
描述中的"ibatis框架源码剖析书中附带的光盘,ibatis源码分析"暗示这可能是一个学习资源,用于深入理解iBATIS的工作原理,可能包括了对源码的详细解读和分析。 **iBATIS核心知识点** 1. **SQL映射**:iBATIS的核心...
- 第一个例子:通过一个简单的CRUD操作,展示iBATIS的基本用法。 - 数据源配置:讲解如何配置数据连接字符串,连接池等。 - CRUD操作:详细解释如何使用iBATIS执行增删改查操作。 - 映射实体类:介绍如何将...
iBATIS 是一个Java编程语言中的数据访问接口,它简化了数据库操作,将SQL查询与应用程序代码相结合,使得开发更加灵活。在描述中提到的博文链接是一个ITEYE博客的文章,可能提供了更多关于iBATIS使用或分析的详细...
在使用ibatis开发第一个程序之前,需要做好准备工作: 1. **创建Java Project并导入必要的Jar包:** - 新建一个Java项目,并导入ibatis相关的jar包及MySQL数据库驱动包。 2. **创建数据库和数据表:** - 创建名为...
ibatis是一个基于Java的开源持久层框架,用于简化数据访问层(Data Access Layer, DAL)的开发工作。它通过将SQL语句封装到配置文件中,并提供了一套灵活的方法来处理结果集映射,从而使得开发者能够更加专注于业务...
4. ibatis-dao-2:可能是指iBATIS Data Access Object (DAO)的第二个版本,DAO是一种设计模式,用于封装数据库操作,使得业务逻辑与数据访问层解耦。 5. ibatis-sqlmap-2:iBATIS SQLMap是它的SQL映射组件,负责将...
具体表现为:当第一次查询某个表时,IBatis会将查询结果中的字段名缓存起来;而在后续查询其他表时,如果这些表的字段与之前缓存的字段不一致,就会导致查询失败。 #### 问题分析 在IBatis框架中,`...
本书分为三个部分,第一部分是介绍iBATIS的一些基础知识;第二部分是介绍iBATIS DAO的框架结构及其实现;第三部分是针对iBATIS的底层平台iBATIS SQL Map进行 资源太大,传百度网盘了,链接在附件中,有需要的同学...
ASP.NET MVC3与IBATIS.NET的结合使用是开发高效、灵活的...同时,这也是迈向更复杂、更高效的数据处理解决方案的第一步。在深入学习的过程中,你还可以探索如事务管理、存储过程的使用以及复杂的查询等更多高级特性。
1. FWAS.sln:这是一个Visual Studio解决方案文件,通常包含一个或多个项目,每个项目对应一个特定的层次,如业务逻辑、数据访问层或Web应用程序。 2. FWAS.Base.Domain:这可能是业务模型或领域模型的包,包含与...
iBATIS是一个开源的Java框架,它简化了数据库和应用程序之间的交互,使得开发者可以将SQL语句直接写在XML配置文件中,避免了直接在Java代码中进行数据库操作,提高了代码的可读性和可维护性。 在压缩包中,我们可以...