ntc:iBatis的demo
1. 新建一个web 项目
2. 复制两个包过到lib下
3. 在src下建立jdbc.properties文件, 内容如下:
# Properties file with JDBC-related settings.
# Applied by PropertyPlaceholderConfigurer from "dataAccessContext-local.xml".
# Targeted at system administrators, to avoid touching the context XML files.
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://localhost:1433;DatabaseName=school
username=sa
password=sa
4. 建包com.yenange.entity;
5. 做配置文件
<?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> <!-- jdbc.properties代表配置文件的名字 --> <properties resource="jdbc.properties"/> <transactionManager type="JDBC" commitRequired="false"> <dataSource type="SIMPLE"> <!-- $[driver]代表jdbc.propertie中的键 --> <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/yenange/entity/Student.xml"/> </sqlMapConfig>
6.建Student实体类
package com.yenange.entity;
public class Student {
private Integer sid;
private String sname;
private Integer sage;
public Student() {
}
public Student(Integer sid, String sname, Integer sage) {
this.sid = sid;
this.sname = sname;
this.sage = sage;
}
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public Integer getSage() {
return sage;
}
public void setSage(Integer sage) {
this.sage = sage;
}
}
7.做实体映射文件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 namespace="Account"> <!-- 给当前的User类去一个简短的别名,方便引用 --> <typeAlias alias="Student" type="com.yenange.entity.Student" /> <!-- id给结果映射取一个名字,可以想象成div id.后面可以引用 --> <resultMap id="StudentResult" class="Student"> <result property="sid" column="id" /> <result property="sname" column="name" /> <result property="sage" column="age" /> </resultMap> <!-- 对tbl_user表进行查询操作 --> <select id="getAllStudent" resultMap="StudentResult"> select * from tbL_stu </select> <select id="getStudentById" parameterClass="java.lang.Integer" resultMap="StudentResult"> select * from tbL_stu where id=#sid# </select> <!-- ##来包围参数,这里参数必须和User类中的属性名完全一致 --> <insert id="addStudent" parameterClass="Student"> insert into tbL_stu (name,age) values(#sname#,#sage#) </insert> <!-- 更新操作 --> <update id="updateById" parameterClass="Student"> update tbL_stu set name=#sname# where id=#sid# </update> </sqlMap>
8.写测试方法
package com.yenange.entity;
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;
public class StudentDAOTest {
public static void main(String[] args) throws IOException, SQLException {
Reader reader = Resources
.getResourceAsReader("com/yenange/entity/SqlMapConfig.xml");
SqlMapClient sqlmapClient = SqlMapClientBuilder
.buildSqlMapClient(reader);
queryByID(sqlmapClient);
getAllUser(sqlmapClient);
saveUser(sqlmapClient);
updateUser(sqlmapClient);
}
private static void queryByID(SqlMapClient sqlmapClient)
throws SQLException {
Student student=(Student)sqlmapClient.queryForObject("getStudentById", 1001);
System.out.println(student.getSname());
}
private static void saveUser(SqlMapClient sqlmapClient) throws SQLException {
Student student = new Student();
student.setSname("环形");
student.setSage(89);
sqlmapClient.startTransaction();
sqlmapClient.insert("addStudent", student);
sqlmapClient.commitTransaction();
}
private static void updateUser(SqlMapClient sqlmapClient) throws SQLException {
Student student = new Student();
student.setSid(1001);
student.setSname("环形999");
student.setSage(89);
sqlmapClient.startTransaction();
sqlmapClient.insert("addStudent", student);
sqlmapClient.commitTransaction();
}
private static void getAllUser(SqlMapClient sqlmapClient)
throws SQLException {
List<Student> list = sqlmapClient.queryForList("getAllStudent");
for (Student student : list) {
System.out.println(student.getSname());
}
}
}