参考地址:http://kin111.blog.51cto.com/738881/168984/
步骤如下:
1,在eclipse中新建一个工程ibatisnew,然后把mysql和ibatis的jar包导入进去。这两个包(ibatis-2.3.4.726.jar+mysql-connector-java-5.0.8-bin.jar)可以从网上下载,直接拷贝到WEB-INF/lib目录下。
2,建立SqlMapConfig.xml文件
这个文件包含了数据库的配置,和各个数据表对应的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>
<!-- Configure a built-in transaction manager. If you're using an
app server, you probably want to use its transaction manager
and a managed datasource -->
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1:3306/db"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value=""/>
</dataSource>
</transactionManager>
<!-- List the SQL Map XML files. They can be loaded from the
classpath, as they are here (com.domain.data...) -->
<sqlMap resource="test_ibatis/User.xml"/>
</sqlMapConfig>
3,建立SqlMapConfig.xml中引用的User.xml文件,
这个文件对应数据库中的user表,在这个文件中可以定义别名,可以写sql语句。
文件名:User.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="User">
<!-- Use type aliases to avoid typing the full classname every time. -->
<typeAlias alias="User" type="test_ibatis.User"/>
<!-- Select with no parameters using the result map for Account class. -->
<select id="selectAllUsers" resultClass="User">
select * from user
</select>
</sqlMap>
4,建立user.xml文件中指定的class的文件
这个文件就是一个javabean,和数据库的表的字段相对应,有set和get方法。
文件名;User.java
文件内容:
package test_ibatis;
import java.sql.Date;
public class User {
@Override
public String toString() {
// TODO Auto-generated method stub
String str = "id = " + this.id;
str += " name = " + this.name;
str += " birthday = " + this.birthday;
str += " money = " + this.money;
return str;
}
private int id;
private String name;
private Date birthday;
private float money;
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 Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public float getMoney() {
return money;
}
public void setMoney(float money) {
this.money = money;
}
}
5,建立DAO程序和实现程序
接口名:IUserDAO.java
内容:
package test_ibatis;
import java.util.List;
public interface IUserDAO {
public List<User> getAllUser();
}
实现类:IUserDAOImpl.java
内容:
package test_ibatis;
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 IUserDAOImpl implements IUserDAO {
private static SqlMapClient client = null;
static {
try {
Reader reader = Resources.getResourceAsReader("test_ibatis/SqlMapConfig.xml");
client = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public List<User> getAllUser() {
// TODO Auto-generated method stub
try {
return client.queryForList("selectAllUsers");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
1,实现类中要使用ibatis提供的功能,先从xml文件中读取配置,构造SqlMapClient的对象。
2,具体的实现方法,通过调用SqlMapClient提供的方法,指定xml中的id即可执行对应的sql,并返回结果。
6,测试class
文件名:UserDAO.java
文件内容:
package test_ibatis;
public class UserDAO {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
IUserDAO dao = new IUserDAOImpl();
for (User user : dao.getAllUser()) {
System.out.println(user);
}
}
}
7,sql建表和测试数据user.sql
drop table user;
create table `db`.`User`(
`id` int,
`name` VARCHAR(50) ,
`birthday` date,
`money` float
);
--填充数据
insert user(id,name,birthday,money) values (1,'zhangsha','1985-01-01',50.0);
insert user(id,name,birthday,money) values (1,'lisi','2009-06-20',470.0);
insert user(id,name,birthday,money) values (1,'shenqi','2009-06-20',500.0);
insert user(id,name,birthday,money) values (1,'gaojiu','2009-06-20',1000.0);
insert user(id,name,birthday,money) values (1,'gaojiu','2009-06-20',500.0);
--查询结果
select * from user;