SqlMapClientTemplate的几种初始化方式

SqlMapClientTemplate 是 使用ibatis是必然会用到的一个类。下面介绍三种不同方式初始,其实大同小异,在此做个

总结,以备不时之需。

第一种:在applicationContext.xml中配置SqlMapClient的

configLocation和dataSource两个属性的值,再利用SqlMapClientTemplate 类的setSqlMapClient();

方法把SqlMapClient设置到 SqlMapClientTemplate 中。

业务基础类:

public abstract class AbstractService implements BPService
{
   private SqlMapClient sqlClient = null;
 
   public AbstractService()
   {
   }

   public SqlMapClient getSqlMapClient()
   {
      return sqlClient;
   }


   public void setSqlMapClient(SqlMapClient sqlClient)
   {
      this.sqlClient = sqlClient;
   }

   
}

实现类:

public class ServiceImpl extends AbstractService implements
		HaihangService {

                private SqlMapClientTemplate sqlmapClient;

	protected SqlMapClientTemplate getSqlMapClientTemplate() {
		if (sqlmapClient == null) {
			sqlmapClient = new SqlMapClientTemplate();
			sqlmapClient.setSqlMapClient(getSqlMapClient()); //此处是setSqlMapClient而不是setDataSource
		}
		return sqlmapClient;
	}

	public void saveSuspend(HashMap map) throws Exception {
		try {
			this.getSqlMapClient().update("insert-hn_suspend", map);
		} catch (SQLException e) {
			throw new SysException(e);
		}
	}

}

spring配置文件中的配置:

 

<bean id="ServiceTarget" class="com.nstc.haihang.service.impl.ServiceImpl">
		<property name="sqlMapClient" ref="sqlMapClient" />
	</bean>


<bean id="sqlMapClient"
		class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="configLocation">
			<value>classpath:sqlmap.xml</value>
		</property>
		<property name="dataSource" ref="dataSource" />
	</bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName">
   <value>java:comp/env/Data</value>
  </property>
 </bean>

第二种:

 

   业务基础类

  

public class BaseDAO extends HibernateDaoSupport {
	protected SqlMapClientTemplate sqlMapClientTemplate = new SqlMapClientTemplate();

	protected JdbcTemplate jt;
	protected DataSource dataSource;

	public final void setDataSource(DataSource dataSource) {
		this.dataSource = dataSource;
		this.sqlMapClientTemplate.setDataSource(dataSource);
		this.jt = new JdbcTemplate(dataSource);
	}

	public final DataSource getDataSource() {
		return dataSource;
	}

	public final void setSqlMapClient(SqlMapClient sqlMapClient) {
		this.sqlMapClientTemplate.setSqlMapClient(sqlMapClient);
	}

	public final SqlMapClient getSqlMapClient() {
		return this.sqlMapClientTemplate.getSqlMapClient();
	}

	public final void setSqlMapClientTemplate(
			SqlMapClientTemplate sqlMapClientTemplate) {
		if (sqlMapClientTemplate == null) {
			throw new IllegalArgumentException(
					"Cannot set sqlMapClientTemplate to null");
		}
		this.sqlMapClientTemplate = sqlMapClientTemplate;
	}

	public JdbcTemplate getJdbcTemplate() {
		return jt;
	}

	public void setJdbcTemplate(JdbcTemplate jt) {
		this.jt = jt;
	}

	public final SqlMapClientTemplate getSqlMapClientTemplate() {
		return sqlMapClientTemplate;
	}
	
	public Object getMap(Object o,Map map){
		new ObjTransfer(map).setObject(o);
		return o;
	}
}

 applicationContext.xml

 

 <bean id="baseDao"
        class="dao.BaseDao">
    <property name="sessionFactory">
      <ref bean="sessionFactory" />
    </property>
    <property name="sqlMapClient">
      <ref local="sqlMapClient" />
    </property>
    <property name="dataSource">
      <ref bean="dataSource.FBCM" />
    </property>
    <property name="dbDialect">
      <value>${sql.server.env}</value>
    </property>        
  </bean>

 <bean id="sqlMapClient"
        class="com.*fbth.spring.NstcSqlMapClientFactoryBean">
    <property name="configLocation">
      <value>sql-map-config.xml</value>
    </property>
  </bean>

 第三种:

   自己简化后

   基础类basedao

 

public class BaseDao extends SqlMapClientDaoSupport{

    
}

  applicationContext.xml中的配置

  

<bean id="baseDao"
        class="com.fbth.dao.BaseDao">
    <property name="sqlMapClient">
      <ref local="sqlMapClient" />
    </property>        
  </bean>

 <bean id="sqlMapClient"
        class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    <property name="configLocation">
      <value>/WEB-INF/sql-map-config.xml</value>
    </property>
     <property name="dataSource">
      <ref bean="dataSource.FBCM" />
    </property>  
  </bean>

 使用类的配置

 

  <bean  id="hrDao"  class="com..dao.interfaceDao" parent="baseDao"></bean>

 类中使用

  

public class HRInterfaceDao extends BaseDao {
 
	public  String  getHRMessage(String vcEmployeeID){
		
		Integer   count = (Integer)this.getSqlMapClientTemplate().queryForObject("getHRMessage",vcEmployeeID);
	    
	    return  count+""; 
	}

}

 

猜你喜欢

转载自salouhim.iteye.com/blog/1124661
今日推荐