1、工程目录结构:
2、创建了一个javabean:
package com.ibatis;
import java.sql.Date;
public class Student {
//要与数据库中表的字段名称对应
private int sid = 0;
private String sname = null;
private String major = null;
private Date birth = null;
private float score = 0;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
@Override
public String toString() {
String content "sid="+sid+"\tsname="+sname+"\tmajor="+major+"\tbirth="+birth+"\tscore="+score;
return content;
}
}
3、创建接口IStudentDAO:
package com.ibatis;
import java.util.List;
public interface IStudentDAO {
/**
* 添加学生信息
* @param student
*/
public void addStudent(Student student);
/**
* 通过序列添加数据
* @param student
*/
public void addStudentBySequence(Student student);
/**
* 删除学生信息
* @param id
*/
public int deleteStudentById(int id);
/**
* 修改学生信息
* @param student
* @return
*/
public void updateStudentById(Student student);
/**
* 查询学生信息
* @return
*/
public List<Student> queryAllStudent();
/**
* 模糊查询学生信息
* @param name
* @return
*/
public List<Student> queryStudentByName(String name);
/**
* 单独查询某一天数据
* @param id
* @return
*/
public Student queryStudengById(int id);
}
4、实现接口IStudentDAOImpl:
package com.ibatis;
import java.io.IOException;
import java.io.Reader;
import java.sql.Date;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.ibatis.sqlmap.client.SqlMapClient;
public class IStudentDAOImpl implements IStudentDAO {
private static SqlMapClient sqlMapClient = null;
static{
try {
//读取配置文件
Reader reader = com.ibatis.common.resources.Resources.getResourceAsReader("com/ibatis/SqlMapConfig.xml");
sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void addStudent(Student student) {
}
@Override
public void addStudentBySequence(Student student) {
}
@Override
public int deleteStudentById(int id) {
}
@Override
public void updateStudentById(Student student) {
}
@SuppressWarnings("unchecked")
@Override
public List<Student> queryAllStudent() {
List<Student> studentList = null;
try {
studentList = sqlMapClient.queryForList("selectAllStudent");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return studentList;
}
@Override
public List<Student> queryStudentByName(String name) {
}
@SuppressWarnings("unchecked")
@Override
public Student queryStudengById(int id) {
}
public static void main(String[] agr0) throws Exception{
IStudentDAO dao = new IStudentDAOImpl();
dao.queryAllStudent();
}
}
4、properties配置文件 SlMap.properties,用于连接数据库的配置
driver=oracle.jdbc.driver.OracelDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
username=bank_date
password=bank_date
5、sql语句配置文件,增删改查等操作的sql语句都写在其中,Student.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="Student" type="com.ibatis.Student"/>
<select id="selectAllStudent" resultClass="Student">select * from student</select>
</sqlMap>
其中的id值是唯一的;resultClass值表示的是返回的结果类型,并且与alias属性值一致。
6、总的XML文件,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="com/ibatis/SqlMap.properties"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property value="$(driver)" name="JDBC.Driver"/>
<property value="${url}" name="JDBC.ConnectionURL"/>
<property value="${username}" name="JDBC.Username"/>
<property value="${password}" name="JDBC.Password"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/ibatis/Student.xml"/>
</sqlMapConfig>
将以上的所有都做好后,运行工程,出现以下问题:
解决方法,将原来的$(driver)改为oracle.jdbc.driver.OracleDriver:
<?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="com/ibatis/SqlMap.properties"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<!-- value="$(driver)"运行时报错,至于原因有待考究 -->
<property value="oracle.jdbc.driver.OracleDriver" name="JDBC.Driver"/>
<property value="${url}" name="JDBC.ConnectionURL"/>
<property value="${username}" name="JDBC.Username"/>
<property value="${password}" name="JDBC.Password"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/ibatis/Student.xml"/>
</sqlMapConfig>


浙公网安备 33010602011771号