首先,ibatis的配置文件为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>
<properties resource="jdbc.properties" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${jdbc.driverClassName}" />
<property name="JDBC.ConnectionURL" value="${jdbc.url}" />
<property name="JDBC.Username" value="${jdbc.username}" />
<property name="JDBC.Password" value="${jdbc.password}" />
</dataSource>
</transactionManager>
<sqlMap resource="ibatis/resources/User.xml" />
</sqlMapConfig>
其中 写jdbc配置文件的路径,这里直接放在src目录下所以这样写
下方的property 中的value的值要与jdbc配置文件中相对应
以下是jdbc.properties的内容
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ibatisdemo?autoReconnect=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root
非常要注意的一点是:从网页上复制的jdbc.properties的内容,可能会多空格,这样会导致读取配置文件的时候出问题,记得去掉空格
然后是实体类对应的配置文件
<?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="User" type="ibatis.model.User" />
<select id="getAllUsers" resultClass="User">
select *
from pf_customer
where is_delete='0'
</select>
<select id="findUsers" resultClass="User">
select *
from pf_customer
where is_delete='0'
and name like '$keyword$'
</select>
<update id="deleteUser">
update pf_customer
set is_delete=1
where id=#id#
</update>
</sqlMap>
这个是给实体类取别名,之后使用别名就可以
接下来是测试
package ibatis;
import ibatis.model.User;
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 IBatisDemo {
public static void main(String[] args) throws IOException, SQLException {
String config="SqlMapConfig.xml";
Reader reader=Resources.getResourceAsReader(config);
SqlMapClient sqlMap=SqlMapClientBuilder.buildSqlMapClient(reader);
//String id="1";
//sqlMap.update("deleteUser", id);
List<User> list=sqlMap.queryForList("getAllUsers");
for(User user:list){
System.out.println(user);
}
}
}
如果运行成功,表示ibatis配置无误且数据库连接成功。
用ibatis操作数据库需要先用流读取SqlMapConfig.xml文件,再创建SqlMapClient对象,通过该对象去调用操作数据库的各种方法
最后提醒一点:一定要导入ibatis、mysql等相关的jar包