ibatis 第一个程序

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

猜你喜欢

转载自jiaozhiguang-126-com.iteye.com/blog/1668709