iBatis是一个开源项目,现已更名为Mybatis了。
示例:
文件目录:
数据库脚本[db.sql]
CREATE DATABASE IF NOT EXISTS `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
数据库连接属性配置[SqlMap.properties]
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:// localhost:3306/test
username= root
password= 123456
[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>
<!-- 引用JDBC属性的配置文件 -->
< properties resource= "com/ibatis/SqlMap.properties" />
<!-- 使用JDBC的事务管理 -->
< 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}"/>
</ dataSource>
</ transactionManager>
<!-- 这里可以写多个实体的映射文件 -->
< sqlMap resource= "com/ibatis/map/Test.xml" />
</ sqlMapConfig>
程序中的sql语句脚本[Test.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= "Test" type = "com.ibatis.domain.Test"/>
<!-- 增加一项 -->
< insert id= "test_insert" parameterClass = "Test">
INSERT INTO TEST(name)
VALUES
(#name#)
< selectKey resultClass ="java.lang.Integer" keyProperty= "id" >
select last_insert_id() as ID from test limit 1
</ selectKey>
</ insert>
<!-- 删除一项 -->
< delete id= "test_delete" parameterClass = "int">
DELETE FROM TEST
WHERE
id = #id#
</ delete>
<!-- 修改一项 -->
< update id= "test_update" parameterClass = "Test">
UPDATE TEST
SET
name = #name#
WHERE
id = #id#
</ update>
<!-- 查询一项 -->
< select id= "test_list" parameterClass = "int" resultClass= "Test" >
SELECT * FROM test
WHERE id = #id#
</ select>
</ sqlMap>
据库字段的java类[Test.java]
package com.ibatis.domain;
public class Test {
private int id;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this. name = name;
}
public int getId() {
return id;
}
public void setId( int id) {
this. id = id;
}
}
Dao类[TestDao.java]
package com.ibatis.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.domain.Test;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class TestDao {
private static SqlMapClient sqlMapClient = null;
//读取配置文件
static {
try {
<span style="white-space:pre"> </span>Reader reader = Resources.getResourceAsReader("com/ibatis/SqlMapConfig.xml");
<span style="white-space:pre"> </span>sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
<span style="white-space:pre"> </span>reader.close();
} catch (IOException e) {
<span style="white-space:pre"> </span>e.printStackTrace();
}
}
//增加一项
public int insertTest(Test entity) throws SQLException{
<span style="white-space:pre"> </span>return (Integer)sqlMapClient.insert("test_insert",entity);
}
//删除一项
public void deleteTest(int id) throws SQLException{
<span style="white-space:pre"> </span>sqlMapClient.delete("test_delete", id);
}
//修改一项
public void updateTest(Test entity) throws SQLException{
<span style="white-space:pre"> </span>sqlMapClient.update("test_update", entity);
}
//查询一项
public List selectTest(int id) throws SQLException{
<span style="white-space:pre"> </span>return (List) sqlMapClient.queryForList("test_list", id);
}
}
工程测试service类[TestService.java]
package com.ibatis.service;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.dao.TestDao;
import com.ibatis.domain.Test;
public class TestService {
public static void main(String[] args) throws SQLException{
<span style="white-space:pre"> </span>TestDao testDao = new TestDao();
<span style="white-space:pre"> </span>Test entity = new Test();
<span style="white-space:pre"> </span>entity.setName("Davi");
<span style="white-space:pre"> </span>int id = testDao.insertTest(entity);
<span style="white-space:pre"> </span>List list = testDao.selectTest(id);
<span style="white-space:pre"> </span>System.out.println("insert,id = " + ((Test)list.get(0)).getId()
+ ",name = " + ((Test)list.get(0)).getName());
<span style="white-space:pre"> </span>entity.setId(id);
<span style="white-space:pre"> </span>entity.setName("linda");
<span style="white-space:pre"> </span>testDao.updateTest(entity);
<span style="white-space:pre"> </span>list = testDao.selectTest(id);
<span style="white-space:pre"> </span>System.out.println("update,id = " + ((Test)list.get(0)).getId()
+ ",name = " + ((Test)list.get(0)).getName());
<span style="white-space:pre"> </span>testDao.deleteTest(id);
}
}
参考地址:http://www.cnblogs.com/ycxyyzw/archive/2012/10/13/2722567.html