ibatis配置

来源:百度文库 编辑:神马文学网 时间:2024/04/28 06:50:07
ibatis配置(1) 收藏
一、搭建ibatis环境
(1)在ibatis官方网站下载ibatis的jar包。
(2)准备项目中所使用的数据库的JDBC的链接jar包。
(3)将上述两个jar包考到工程中的lib目录下或在工程属性中导入两个jar包。
至此,环境搭建完成。
二、ibatis配置文件(sqlMapping.properties)
(1)JDBC连接配置文件
<1>连接驱动类名(SQL Server 2000为例)
driver = com.microsoft.sqlserver.jdbc.SQLServerDriver;
<2>连接字符串(Oracle为例)
url = jdbc:sqlserver://localhost:1433;databaseName=Test;
<3>数据库登陆用户名
username = sa;
<4>数据库登陆密码
password = sa
(2)ibatis总配置文件(sqlmapconfig.xml)
该文件记录下列信息
<1> JDBC连接配置文件的路径。
<2>数据库的连接信息(连接驱动,连接字符串,用户名,密码),所有信息都从上面文件properties中读取,键名与上面properties文件中的键名相同。
<3>实体映射。记录每个实体以及对应的数据库表所对应的XML配置文件的路径。
附:
一个ibatis 2配置文件如下:

"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">















(3)实体对应XML配置文件
一个实体映射配置文件示例:

PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">








INSERT INTO EMP(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES(#empNo#,#ename#,#job#,#mgr#,#hiredate#,#sal#,#comm#,#deptno#)



UPDATE EMP SET ENAME = #ename#,JOB = #job#,MGR = #mgr#,HIREDATE = #hiredate#,SAL = #sal#,COMM = #comm#,DEPTNO = #deptno# WHERE EMPNO = #empNo#



DELETE FROM EMP WHERE EMPNO = #empNo#


三、一个基于ibatis框架Web工程的结构截图
四、ibatis框架的DAO类
package com.microserver.dao;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.microserver.pojo.Emp;
public class EmpDAO {
//emp配置文件路径
String resource = "com/microserver/data/SqlMapConfig.xml";
//声明reader对象用于读取上面配置文件
Reader reader = null;
//
SqlMapClient smc = null;
//默认构造方法
public EmpDAO(){
try {
//读取上面的文档
this.reader = Resources.getResourceAsReader(resource);
this.smc = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//该方法获得所有员工信息
public List getAllEmp() throws SQLException{
//声明Emp泛型集合盛放查询结果集
return this.smc.queryForList("selectAllEmp");
}
// 按工号查询员工对象
public Emp getEmpByNo(String EmpNo) throws SQLException{
//声明Emp泛型集合盛放查询结果集
return (Emp)this.smc.queryForObject("selectEmpByNo",EmpNo);
}
// 该方法添加新员工
public void addEmp(Emp emp) throws SQLException{
this.smc.insert("addEmp", emp);
}
// 更新员工信息
public void updateEmp(Emp emp) throws SQLException{
this.smc.update("updateEmp", emp);
}
//删除员工信息
public void deleteEmp(String empNo) throws SQLException{
this.smc.delete("delEmp", empNo);
}
}
五、一个ibatis框架的Action类
package com.microserver.action;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import com.microserver.dao.EmpDAO;
import com.microserver.pojo.Emp;
//员工业务逻辑类
public class EmpAction {
// 实例化EmpDAO类对象
EmpDAO ed = new EmpDAO();
// 该方法获得所有员工信息
@SuppressWarnings("unchecked")
public void getAllEmp() {
//
try {
//调用方法获得查询所有员工的信息
List emplist = ed.getAllEmp();
for(int i = 0;i < emplist.size();i++){
//将上面List集合强制转换为Map集合
Map empMap = (Map)emplist.get(i);
//显示集合中每个对象的属性值
//注:此处字段要区分大小写
System.out.print(empMap.get("EMPNO") + "\t");
System.out.print(empMap.get("ENAME") + "\t");
System.out.print(empMap.get("JOB") + "\t");
System.out.print(empMap.get("MGR") + "\t");
System.out.print(empMap.get("HIREDATE") + "\t");
System.out.print(empMap.get("SAL") + "\t");
System.out.print(empMap.get("COMM") + "\t");
System.out.println(empMap.get("DEPTNO"));
System.out.println("--------------------------------------");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//按员工编号查询员工
public void getEmpByNo(String empNo){
try {
//调用方法获得查询的员工对象
Emp emp = ed.getEmpByNo(empNo);
//
System.out.print(emp.getEmpNo() + "\t");
System.out.print(emp.getEname() + "\t");
System.out.print(emp.getJob() + "\t");
System.out.print(emp.getComm() + "\t");
System.out.print(emp.getHiredate() + "\t");
System.out.print(emp.getMgr() + "\t");
System.out.print(emp.getSal() + "\t");
System.out.print(emp.getDeptno() + "\t");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//添加员工的方法
public void addEmp(Emp emp){
try {
//调用方法添加新员工
ed.addEmp(emp);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//修改员工信息
public void updateEmp(Emp emp){
try {
ed.updateEmp(emp);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//删除员工信息
public void deleteEmp(String empNo){
try {
ed.deleteEmp(empNo);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}