`

spring jdbctemplate最佳实践

阅读更多
package com.spring.ch11.jdbctemplate;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import javax.sql.DataSource;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

public class DemoDaoImpl implements IDemoDao {

	private JdbcTemplate jdbcTemplate;

	public void setDataSource(DataSource dataSource) {
		this.jdbcTemplate = new JdbcTemplate(dataSource);
	}

	@Override
	public Demo getById(int id) {
		return (Demo) this.jdbcTemplate.queryForObject(
				"select id,name,unitPrice from demo d where d.id = ?",
				new Integer[] { id }, demoRowMapper());
	}

	@Override
	public List<Demo> getAll() {
		return this.jdbcTemplate.query("select id,name,unitPrice from demo",
				demoRowMapper());
	}

	private RowMapper demoRowMapper() {
		return new RowMapper() {

			@Override
			public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
				Demo demo = new Demo();
				demo.setId(rs.getInt("id"));
				demo.setName(rs.getString("name"));
				demo.setUnitPrice(rs.getFloat("unitPrice"));
				return demo;
			}

		};
	}

}

 

 

Spring配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
		   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
	<bean id="placeHolder"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
		p:locations="classpath:jdbc.properties" />

	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
		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>

	<bean id="com.spring.ch11.jdbctemplate.IDemoDao"
		class="com.spring.ch11.jdbctemplate.DemoDaoImpl" p:dataSource-ref="dataSource">
	</bean>


</beans>

 

分享到:
评论
1 楼 keer2345 2010-01-20  
很好很好,受教了

相关推荐

    SpringJdbcTemplate封装工具类

    9. **最佳实践** - 保持SQL语句简洁,避免在业务代码中混杂复杂的SQL。 - 避免过度使用`JdbcTemplate`,对于复杂查询和事务,可以考虑使用ORM框架如Hibernate或MyBatis。 - 使用预编译的SQL(PreparedStatement)...

    一个简单易用可对象操作基于SpringJdbcTemplate的JDBC帮助包

    标题中的“一个简单易用可对象操作基于SpringJdbcTemplate的JDBC帮助包”指的是一个专为简化Java开发中数据库操作而设计的工具包。这个工具包利用了Spring的JdbcTemplate,它是一个轻量级的ORM(对象关系映射)框架...

    Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA+JdbcTemplate

    【SSH整合】指的是在Java开发中,将Spring、SpringMVC和Hibernate这三大框架进行集成。...通过实践这个DEMO,开发者可以掌握到Java Web开发中的关键技术和最佳实践,为后续的项目开发打下坚实的基础。

    SpringJDBC.rar_SpringJDBC_jdbctemplate_jdbctemplate spring

    8. **最佳实践** - 避免硬编码SQL,使用预编译的PreparedStatement来防止SQL注入。 - 使用JdbcTemplate的批处理功能提高性能。 - 尽可能使用`NamedParameterJdbcTemplate`,提高代码的可读性。 通过理解并熟练...

    struts2.3.4+spring3.1.1+jdbctemplate

    Struts2.3.4+Spring3.1.1+JdbcTemplate 整合示例 ...为了深入学习,可以查看每个组件的官方文档,了解更丰富的特性和最佳实践。同时,通过调试和修改DEMO,可以更直观地感受到它们协同工作的方式。

    spring框架 jdbcTemplate

    10. **最佳实践**: - 使用PreparedStatement代替Statement,防止SQL注入。 - 尽量避免在循环中执行数据库操作,可以批量处理以提高效率。 - 根据实际需求选择合适的RowMapper,如BeanPropertyRowMapper,自定义...

    Java EE设计模式:Spring企业级开发最佳实践_JavaEE_企业应用开发_

    《Java EE设计模式:Spring企业级开发最佳实践》是一本深度探讨如何在企业级Java应用程序中有效运用设计模式的著作。这本书聚焦于Spring框架,它作为Java EE领域中最为广泛使用的开源框架之一,极大地简化了企业级...

    _Spring_使用 JdbcTemplate和JdbcDaoSupport.rar

    虽然`JdbcTemplate`提供了很多便利,但为了提高性能,应遵循以下最佳实践: - 避免过度使用`SimpleJdbcInsert`和`SimpleJdbcCall`,因为它们在每次调用时都会创建新的PreparedStatement对象。 - 使用参数化查询而...

    管理系统系列--图书管理系统( Spring+Spring MVC+JdbcTemplate).zip

    总的来说,"图书管理系统"通过Spring、SpringMVC和JdbcTemplate的组合,构建了一个功能完备、易于维护的后台系统,展示了JavaWeb开发的最佳实践。对于学习和理解这些技术,以及如何将它们应用到实际项目中,这是一个...

    Java EE设计模式 Spring企业级开发最佳实践源代码

    本资源包含的是"Spring企业级开发最佳实践源代码",这将帮助我们深入理解Spring如何在实际项目中应用这些模式。 1. **依赖注入(Dependency Injection, DI)模式**:Spring的核心特性之一,它允许开发者在运行时...

    JdbcTemplate.jar

    五、最佳实践与注意事项 1. **避免硬编码SQL**:尽量使用PreparedStatement,提升安全性,易于维护。 2. **合理设置事务边界**:避免过多的事务开启,注意事务的粒度控制。 3. **异常处理**:正确捕获和处理...

    JdbcTemplate所有jar包,文档

    文档是理解和使用JdbcTemplate的重要资源,它包含了详细的API参考、示例代码和最佳实践。通过阅读文档,开发者可以更好地了解JdbcTemplate的各种功能,如何正确配置和使用它,以及如何解决遇到的问题。 综上所述,...

    jdbcTemplate简单使用

    `JdbcTemplate`是Spring框架中的一个核心组件,主要用于简化数据库操作。它提供了一种模板化的JDBC编程方式,使得开发者...通过阅读提供的博客链接(已省略),你可以获取更多关于`JdbcTemplate`的实际用例和最佳实践。

    jdbcTemplate封装工程需要的jar包

    6. **最佳实践**: - 使用占位符参数化SQL以防止SQL注入攻击。 - 为每个操作创建单独的方法,保持代码清晰可读。 - 考虑使用`NamedParameterJdbcTemplate`,对于参数多的复杂SQL,其命名参数的方式更加直观。 综...

    java基于jdbctemplate数据持久层操作封装

    8. **最佳实践**: - 为了保持代码整洁,建议将SQL语句从方法体中分离到配置文件或资源文件中,使用`@Value`注解注入。 - 使用事务管理器来管理数据库事务,确保数据一致性。 通过以上内容,我们可以了解到...

    jdbcTemplate

    10. **最佳实践**: - 避免直接在`JdbcTemplate`实例上调用方法,而是使用`@Autowired`注解创建bean并注入,以便于控制事务和更好的测试。 - 在处理大量数据时,考虑使用批处理操作以提高效率。 - 自定义异常...

    spring-framework-4.3.6.RELEASE

    《Spring框架4.3.6.RELEASE深度解析》 Spring框架是Java开发中的核心组件,以其模块化、可扩展性和强大的依赖注入特性而备受...在实际开发过程中,持续学习和实践Spring的最佳实践,将有助于提升软件质量和开发效率。

    Spring4.X教学视频

    Spring框架是Java开发中最常用的轻量级开源框架之一,它以其强大的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...记得在观看过程中结合实际操作,理论与实践相结合,以达到最佳学习效果。

    SPRING技术内幕+深入解析SPRING架构与设计 55M(下载地址)

    - 通过案例学习如何从源代码中提炼出设计模式和最佳实践。 #### 阅读建议 为了最大化地从本书中获益,建议读者具备一定的Java基础,并且最好有一定的Spring使用经验。本书不仅适合自学,也非常适合作为团队内部...

Global site tag (gtag.js) - Google Analytics