读书人

怎么把iBatis注入到Spring中

发布时间: 2012-08-16 12:02:15 作者: rapoo

如何把iBatis注入到Spring中
application.xml配置:

<bean id="dataSource" destroy-method="close">  <property name="driverClassName" value="${jdbc.driverClassName}"/>  <property name="url" value="${jdbc.url}"/>  <property name="username" value="${jdbc.username}"/>  <property name="password" value="${jdbc.password}"/></bean><context:property-placeholder location="jdbc.properties"/><bean id="sqlMapClient" value="classpath:sqlmap-config.xml"/>  <property name="dataSource" ref="dataSource"/></bean><bean id="sqlMapTestDao" ref="sqlMapClient"></property></bean>


sqlmap-config.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 useStatementNamespaces="true"/>  <sqlMap resource="com/entity/Test.xml"/></sqlMapConfig>


Test.xml配置:
<sqlMap namespace="Test">  <resultMap id="result" column="TEST1" columnIndex="1"/>    <result property="test2" column="TEST2" columnIndex="2"/>  </resultMap>  <select id="getTestByTest1" resultMap="result">    select TEST.TEST1, TEST.TEST2 from TEST where TEST.TEST1 = #value#  </select>  <insert id="insertTest">    insert into TEST (TEST1, TEST2) values (#test1#, #test2#)  </insert></sqlMap>


Test.java配置
public class Test implements java.io.Serializable {  private String test1;  private String test2;  // 忽略getter和setter方法}


SqlMapTestDao.java配置
public class SqlMapTestDao extends SqlMapClientDaoSupport {  //方法一  public void getTestByTest1(String test1){    Test test = (Test)getSqlMapClientTemplate()      .queryForObject("getTestByTest1", test1);    System.out.println("test1:"+test.getTest1());  }  //方法二  public void insertAccount(Test test) throws DataAccessException {    getSqlMapClientTemplate().update("insertTest ", test);  }  //方法三  public void insertAccountTest(final Test test) throws DataAccessException {    getSqlMapClientTemplate().execute(new SqlMapClientCallback() {      public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {        executor.startBatch();        executor.update("insertAccount", test);        executor.update("insertAddress", test.getTest2());        return executor.executeBatch();      }    });  }  //执行方法  public static void main(String[] args) {    BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");    SqlMapTestDao dao = (SqlMapTestDao)factory.getBean("sqlMapTestDao");    dao.getTestByTest1("8");  }}

读书人网 >开源软件

热点推荐