`

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+""; 
	}

}

 

 

分享到:
评论

相关推荐

    spring几种Dao支持配置

    以下将详细阐述Spring对DAO支持的几种配置方式: 1. **JDBC DAO支持:** Spring通过`JdbcTemplate`和`SimpleJdbcInsert`等类提供了对JDBC的抽象,减少了直接使用JDBC代码的繁琐性。`JdbcTemplate`提供了一组模板...

    Spring高版本对ibatis的支持

    最近想在最新的Spring5.0中集成ibatis(不是mybatis),发现已经不在支持SqlmapClientTemplate和SqlmapClientFactoryBean,于是搞了这个工具jar来进行支持如下配置 &lt;value&gt;classpath:SqlMapConfig.xml ...

    ibatis的两种方式实现批处理.doc

    在iBatis中,批处理可以通过两种方式实现,分别是Spring模式和回调函数模式。 Spring模式 在Spring模式下,iBatis提供了SqlMapClient来实现批处理操作。SqlMapClient是一个线程安全的客户端对象,用于执行SQL语句...

    sqlMapsqlMapsqlMapsqlMapsqlMap

    1. **初始化**:在应用启动时,SqlMap客户端会加载XML配置文件,解析其中的SQL语句和映射规则。 2. **SQL执行**:当需要执行数据库操作时,通过SqlMap接口传递参数,SqlMap会根据预定义的SQL语句生成合适的查询或...

    ibatis教程

    `PagingList`类有两个构造方法,都用于初始化分页参数。第一个构造方法接受`statementName`(iBatis语句ID),`parameterObject`(SQL语句参数),`pageNum`(起始页数),`pageSize`(每页大小)和`sqlMapClientTemplate`...

    ibatis与spring的整合

    Spring通过`SqlMapClientFactoryBean`来创建和初始化SqlMapClient。在Spring配置文件中,我们需要指定SqlMap配置文件的位置。 7. **SqlMapConfig.xml** iBATIS的SqlMapConfig.xml文件包含了全局设置、数据源、...

    Spring与iBATIS的集成示例代码

    &lt;bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate"&gt; ``` 接着,我们需要创建iBATIS的SQL映射文件(如`sqlMapConfig.xml`),在这个文件中,我们将定义数据库的SQL...

    SSI框架整合小结

    - 同时,Spring容器也会进行初始化,并根据相应的配置文件加载和管理Bean。 2. **请求处理流程**: - 用户发送HTTP请求至服务器。 - Struts拦截器捕获请求,并根据`struts.xml`中的配置找到对应的`Action`类。 ...

    ibatis+spring完全整合

    ### ibatis+spring完全整合知识点解析 ...这种整合方式不仅能够简化数据库操作,还能够充分利用Spring框架的优点,提高应用程序的开发效率和质量。在实际项目中,还可以根据具体需求进一步扩展和完善。

    ibatis整合spring

    这个配置文件中,`transactionManager`定义了事务管理方式,`dataSource`设置了数据库连接信息,`sqlMap`则指定了SQL映射文件的位置。 8. 整合过程总结 iBatis与Spring的整合主要包括以下几个步骤: 1. 在Spring...

    Spring技术内幕 学习笔记

    这包括Bean的生命周期管理,依赖注入,以及如何初始化和销毁Bean。 3. **Spring基于 Annotation 的简单介绍**: - 这里会概述Spring的注解驱动开发,包括@Component、@Service、@Repository和@Controller等核心...

    WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4

    iBatis与Spring整合,可以实现声明式事务管理和DAO(Data Access Object)的自动化创建。 集成这些技术的关键在于配置。首先,我们需要确保项目中包含以下库文件: - `ibatis-2.3.4.726.jar`: iBatis的核心库 - `...

    Spring与iBATIS的集成

    1. **依赖注入**:在Spring与iBATIS集成时,可以通过Spring的依赖注入特性来初始化iBATIS的SqlMapClient或SqlSessionFactory。这种方式可以避免硬编码,提高代码的灵活性。 2. **事务管理**:Spring提供的事务管理...

    Spring与iBATIS地集成

    在Spring应用中,你可以创建一个SqlSessionFactoryBean,这是一个Spring管理的bean,用于初始化iBATIS的SqlSessionFactory。SqlSessionFactory是iBATIS的核心,负责创建SqlSession实例,而SqlSession则用于执行SQL...

    ibatis批处理.doc

    另一种方法是通过实现`SqlMapClientCallback`接口并使用`SqlMapClientTemplate`的`execute`方法来执行批处理。这种方式更加面向对象,代码更简洁。下面是一个示例: ```java public void batchAddExamlog2(List...

    Spring中文帮助文档

    3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. Singleton beans和prototype-bean的...

    Spring API

    3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. Singleton beans和prototype-bean的...

    Spring整合ibatis

    在软件开发领域,尤其是Java企业级应用中,数据持久化是至关重要的环节。Spring框架以其卓越的依赖注入(DI)和面向切面编程(AOP)能力,在Java开发社区中占据了举足轻重的地位。而ibatis(现称为MyBatis),作为一...

    ibatis批量处理

    iBatis(现已更名为MyBatis)是一款优秀的持久层框架,它支持定制化SQL、存储过程及高级映射。iBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。iBatis可以非常简单地将接口和Java的POJOs(Plain Old ...

    在Spring使用iBatis及配置讲解

    private SqlMapClientTemplate sqlMapClientTemplate; public List&lt;Student&gt; getAllStudents() { return sqlMapClientTemplate.queryForList("getAllStudents"); } } ``` 建立基于 iBatis 的 DAO ...

Global site tag (gtag.js) - Google Analytics