一、Ibatis资料参考如下:
1.官方网址:
2.ibatis生成工具 ibator:
主页:http://ibatis.apache.org/ibator.html
文档:http://ibatis.apache.org/docs/tools/ibator/
下载:http://people.apache.org/builds/ibatis/alpha/IbatorForEclipse1.2.1.zip
更新:http://ibatis.apache.org/tools/ibator (eclipse自动更新)
实例:http://blog.csdn.net/tanlier1/archive/2007/09/13/1784074.aspx
http://www.blogjava.net/jia8zy/archive/2007/08/19/137964.html
实例可能与最新版本有出入,最好还是按照文档来。
3.spring + ibatis
http://www.blogjava.net/ducklyl/archive/2007/11/20/161938.html
4. 是iBatis+Spring的一个扩展,能够让你使用Java类和接口来代替用于object-SQL映射的XML文档。(利用java的annotations功能)
http://javamapper.sourceforge.net/
5.书籍文档下载:http://zhang-ly520.javaeye.com/blog/326203
ibatis in action 原版
ibatis in action 部分中文版
ibatis入门文档中文版
ibatis开发手册中文版
二、实例
1、定义POJO类:Student.java
public class Student {
private int id;
private String name;
private String address;
private float score;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
@Override
public String toString() {
return "id: " + id + ", name: " + name + ", address: " + address
+ ", score: " + score;
}
}
2、定义使用接口:StudentService.java
import java.util.List;
import com.alibaba.ibatis.modules.Student;
public interface StudentService {
public void addStudent(Student student);
public int updateStudent(Student student);
public int deleteStudent(Student student);
public Student getStudentById(int id);
public List<Student> getStudentsLike(String likeName);
public List<Student> getAllStudents();
}
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.alibaba.ibatis.modules.Student;
import com.alibaba.ibatis.service.StudentService;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class StudentServiceImpl implements StudentService {
static SqlMapClient sqlMapClient = null;
static {
String resource = "SqlMapConfig.xml";
try {
Reader reader = Resources.getResourceAsReader(resource);
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void addStudent(Student student) {
try {
sqlMapClient.insert("insertStudent", student);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public int deleteStudent(Student student) {
int effectedRow = 0;
try {
effectedRow = sqlMapClient.delete("deleteStudent", student);
} catch (SQLException e) {
e.printStackTrace();
}
return effectedRow;
}
@SuppressWarnings("unchecked")
@Override
public List<Student> getAllStudents() {
List<Student> students = null;
try {
students = sqlMapClient.queryForList("getAllStudents");
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
@Override
public Student getStudentById(int id) {
Student student = null;
try {
student = (Student) sqlMapClient.queryForObject("getStudentById",
id);
} catch (SQLException e) {
e.printStackTrace();
}
return student;
}
@Override
public int updateStudent(Student student) {
int effectedRow = 0;
try {
effectedRow = sqlMapClient.update("updateStudent", student);
} catch (SQLException e) {
e.printStackTrace();
}
return effectedRow;
}
@SuppressWarnings("unchecked")
@Override
public List<Student> getStudentsLike(String likeName) {
List<Student> students = null;
try {
students = sqlMapClient.queryForList("getStudentsLike", likeName);
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
}
3、Ibatis的三个配置文件:
url=jdbc:mysql://localhost:3306/ibatis
username=ibatis
password=ibatis
Pool.MaximumActiveConnections=10
Pool.MaximumIdleConnections=5
Pool.MaximumCheckoutTime=120000
Pool.TimeToWait=500
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="modules.student">
<typeAlias alias="Student" type="com.alibaba.ibatis.modules.Student" />
<insert id="insertStudent" parameterClass="Student">
INSERT INTO
student(id, name, address, score)
VALUES(#id#,#name#,#address#,#score#)
</insert>
<select id="getStudentById" parameterClass="int" resultClass="Student">
SELECT * FROM student where id = #id#
</select>
<select id="getAllStudents" resultClass="Student">
SELECT * FROM student
</select>
<select id="getStudentsLike" resultClass="Student" parameterClass="String">
SELECT * FROM student where name like '%$name$%'
</select>
<update id="updateStudent" parameterClass="Student">
UPDATE student set
name = #name#, address = #address#, score = #score# where id = #id#
</update>
<delete id="deleteStudent" parameterClass="Student">
DELETE FROM
student where id = #id# and name = #name# and address = #address# and
score = #score#
</delete>
</sqlMap>
<!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="${driver}" />
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${username}" />
<property name="JDBC.Password" value="${password}" />
<property name="Pool.MaximumActiveConnections" value="${Pool.MaximumActiveConnections}" />
<property name="Pool.MaximumIdleConnections" value="${Pool.MaximumIdleConnections}" />
<property name="Pool.MaximumCheckoutTime" value="${Pool.MaximumCheckoutTime}" />
<property name="Pool.TimeToWait" value="${Pool.TimeToWait}" />
</dataSource>
</transactionManager>
<sqlMap resource="com/alibaba/modules/student.xml" />
</sqlMapConfig>
<groupId>com.alibaba.external</groupId>
<artifactId>sourceforge.ibatis</artifactId>
<version>2.3.4</version>
</dependency>
<dependency>
<groupId>com.alibaba.external</groupId>
<artifactId>jdbc.mysql.mysql-connector</artifactId>
<version>5.1.6</version>
</dependency>