1 准备工具
jdk 免安装版
ibaits jar文件
mysql数据库
2 用eclipse创建一个java项目(ibaitsProject_001)
工程导入上面下载的两个jar文件。
3 src目录下新建一个xml文件(sql-map-config.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="jdbc.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/soft/entity/Student.xml"/>
</sqlMapConfig>
4 创建一个properties文件,里面放数据库连接信息跟第三步的目录同一位置
jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/cshop
username=root
password=123456
5 创建一个entity文件,里面的属性值跟数据库的表的字段对应
package com.soft.entity;
public class StudentEntity {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
6 同目录下(entity同包) 创建表对应关系的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.soft.entity.StudentEntity"/>
<!-- 查询sql -->
<select id="selectList" resultClass="student">
select * from student
</select>
</sqlMap>
7 创建一个dao文件,里面有一个查询数据库的方法。注意 getResourceAsReader("sql-map-config.xml")里面的" sql-map-config.xml"和第三步的文件的名字相同
package com.soft.dao.impl;
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;
import com.soft.entity.StudentEntity;
public class StudentDaoImpl {
//
private SqlMapClient sqlMapClient = null;
/**
* 初始化这个类的时候,创建sqlMapClient实例,
*/
public StudentDaoImpl(){
try{
// 读取sql-map-config.xml信息
Reader reader = Resources.getResourceAsReader("sql-map-config.xml");
// 实例化 sqlMapClient
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
}catch(Exception e){
e.printStackTrace();
}
}
public List<StudentEntity> selectList(){
// 接收查询结果集
List<StudentEntity> stuList = null;
try {
// selectList跟Student.xml中的查询语句的某个id一致
stuList = sqlMapClient.queryForList("selectList");
} catch (SQLException e) {
e.printStackTrace();
}
return stuList;
}
}
7 经过上面几步,东西已经弄好了,下面就来测试一下。
package com.soft.dao.impl;
import java.util.List;
import org.junit.Test;
import com.soft.entity.StudentEntity;
public class StudentDaoImplTest {
@Test
public void test() {
StudentDaoImpl dao = new StudentDaoImpl();
List<StudentEntity> list = dao.selectList();
for (StudentEntity stu : list) {
System.out.println(stu.getUsername());
System.out.println(stu.getPassword());
}
}
}
测试结果
今天学习ibaits,搭了一下架子,原来这么简单。
由于mysql文件比较大,网络不好没有上传到网盘。
mysql相应的建表语句。
create database cshop;
use cshop;
CREATE TABLE `users` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL DEFAULT '',
`password` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
INSERT INTO `users` VALUES (1,'xxx1','123456'),(2,'xxxx2','123456');
完