ibatis配置流程
本次主要了解一下ibatis的配置,配置文件会在程序启动时由web.xml读取,web.xml就不说了。本次写的都是一些流程,这样做就可以实现,只有先实现了才能更深入的理解其精髓。--菜鸟心得,如有错误,还望告知。
ibatis配置文件在配置时首先会想到应该配置dataSource(因为要和数据库打交道嘛),另外还要配置sqlMapClient
1.配置文件如下
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://127.0.0.1:3306/user</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>admin</value> </property> </bean> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value>WEB-INF/sqlMapConfig.xml</value> </property> </bean> <bean id="userDAO" class="com.gc.action.UserDAO"> <property name="dataSource"> <ref bean="dataSource"/> </property> <property name="sqlMapClient"> <ref bean="sqlMapClient"/> </property> </bean> </beans>
2.在上面的配置文件中可以看到,配置文件需要找sqlMapConfig.xml,所以下面配置这个文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="true" /> <sqlMap resource="com/gc/action/user.xml" /> </sqlMapConfig>
3.在上面的文件中要用到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"> <resultMap id="ibatisTest" class="com.gc.action.User"> <result column="userId" property="userId" jdbcType="VARCHAR" /> <result column="userName" property="userName" jdbcType="VARCHAR" /> </resultMap> <!-- 获得全查询列表 --> <select id="finduser" resultMap="ibatisTest"> select * from userInfo </select> </sqlMap>
4.在user.xml中会有一个和数据库表格对应的实体类,com.gc.action.User
package com.gc.action; import java.io.Serializable; public class User implements Serializable{ private String userId; private String userName; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }
5.测试在UserDao中进行数据访问
package com.gc.action; import java.util.List; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; public class UserDAO extends SqlMapClientDaoSupport{ public List<User> search(){ List<User> userList=(List<User>)getSqlMapClientTemplate().queryForList("User.finduser"); return userList; } public void display(){ List<User> userList = this.search(); for(User user : userList){ System.out.println(user.getUserId()); } } }
这样通过访问UserDAO的display()方法就能数据数据。
6.总结:
在本次开发中会用到如下一些jar包:
spring-orm-3.2.0.M1.jar :jar包中包括下面两个将会用到的文件
org.springframework.orm.ibatis.SqlMapClientFactoryBean.class org.springframework.orm.ibatis.support.SqlMapClientDaoSupport.class
ibatis-2.3.0.677.jar
mysql-connector-java-5.1.7-bin.jar