如何把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><?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>
<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>
public class Test implements java.io.Serializable { private String test1; private String test2; // 忽略getter和setter方法}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"); }}