1.下载jar包:iBatis-common-2.jar,ibatis-sqlmap-2.jar导入工程。
2.这里使用MySql数据库,下载Mysql的驱动jar包导入工程。
3.src目录下创建sqlMapConfig配置文件
<?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>
<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/cyh"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value="root"/>
</dataSource>
</transactionManager>
<sqlMap resource="SqlMap.xml" />
</sqlMapConfig>
transactionManager下的元素配置了连接数据库的信息。
sqlMap的resource属性指定了SQL映射文件的位置。
3.在src目录下创建SqlMap.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>
<select id="getStudents" resultClass="hashmap">
select * from student
</select>
</sqlMap>
这里配置了需要执行的sql语句。resultClass表明将每个查询结果封装成map对象返回。
4.java调用:
public class IbatisTest {
public static void main(String[] args) throws IOException, SQLException {
String resource = "sqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
List list = sqlMap.queryForList("getStudents", null);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
List list = sqlMap.queryForList("getStudents", null);
queryForList方法调用后将sql执行结果集封装成list返回,第一个参数是SqlMap.xml中的select元素的id,表明执行这个元素下的sql。
student表中的数据:
95001 张三 男 17 CS
95002 李四 女 19 IS
95003 王五 男 22 MA
95004 李四 男 20 IS
程序输出结果:
{Sage=17, Ssex=男, Sdept=CS, Sname=张三, Sno=95001}
{Sage=19, Ssex=女, Sdept=IS, Sname=李四, Sno=95002}
{Sage=22, Ssex=男, Sdept=MA, Sname=王五, Sno=95003}
{Sage=20, Ssex=男, Sdept=IS, Sname=李四, Sno=95004}