使用spring的jdbcTemplate-----简化JdbcTemplate模板的创建


每次使用的时候,都要创建一个JdbcTemplate新实例,这种做法效率很地下,因为我们必须创建重复的语句,JdbcTemplate类被

设计成线程安全的,因此可以在Ioc容器中申明它的单实例,并将这个实例注入到新的Dao中,此外,Spring JDBC框架提供了一

个JdbcDaoSupport类来简化DAO实现,该类申明了JdbcTemplate的属性,可以从IOC容器注入,也可以从数据源创建,

 

1,注入JDBC模板

public class JdbcUserDao implements UserDao{

	private JdbcTemplate jdbcTemplate;
	
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate){

		this.jdbcTemplate = jdbcTemplate;
	}

	public void insert(User user){

		String sql = "insert into user values (?,?)";
		jdbcTemplate.update(sql,new Object[]{user.getUsername(),user,getPassword()});
	}

	.........
}

 

 

 

JDBC模板需要设置数据源,可以通过setter方法或者构造函数注入该属性,然后将JDBC模板注入到DAO中

<beans ...>
	........
	<bean id="jdbcTemplate"
		class ="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	
	<bean id="userDao"
		class="com.kang.fei.dao.JdbcUserDao">
		<property name="jdbcTemplate" ref="jdbcTemplate/>
	</bean>
</beans>

 

 

2,扩展JdbcDaoSupport类

JdbcDaoSupport类有一个setDataSurce()方法和一个setJdbcTemplate()方法,DAO可以扩展这个类来继承这些方法,然后直接

注入JDBC模板或者数据原来创建JDBC模板,

public abstract class JdbcDaoSupport extends DaoSupport{

	private JdbcTemplate jdbcTemplate;

	public final void setDataSource(DataSource dataSource){

		this.jdbcTemplate = createJdbcTemplate(dataSource);
		initTemplateConfig();
	}

	public final void setJdbcTemplate(JdbcTemplate jdbcTemplate){

		this.jdbcTemplate = jdbcTemplate;
		initTemplateConfig();
	}
	
	public final JdbcTemplate getJdbcTemplate(){

		return jdbcTemplate;
	}

	.................
	
}


public class JdbcUserDao extends JdbcDaoSupport implements UserDao{

	public void insert(User user){

		String sql = "insert into user values (?,?)";
		this.getJdbcTemplate().update(sql,new Objcet[]{this.getUsername(),this.getPassword()});
	}

	..............
}



<beans...>
	.........
	<bean id="userDao"
		class = "com.kang.fei.dao.JdbcUserDao">
		<property name="dataSource" ref="dataSource"/>
	</bean>
</beans>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值