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>
分享到:
相关推荐
9. **最佳实践** - 保持SQL语句简洁,避免在业务代码中混杂复杂的SQL。 - 避免过度使用`JdbcTemplate`,对于复杂查询和事务,可以考虑使用ORM框架如Hibernate或MyBatis。 - 使用预编译的SQL(PreparedStatement)...
标题中的“一个简单易用可对象操作基于SpringJdbcTemplate的JDBC帮助包”指的是一个专为简化Java开发中数据库操作而设计的工具包。这个工具包利用了Spring的JdbcTemplate,它是一个轻量级的ORM(对象关系映射)框架...
【SSH整合】指的是在Java开发中,将Spring、SpringMVC和Hibernate这三大框架进行集成。...通过实践这个DEMO,开发者可以掌握到Java Web开发中的关键技术和最佳实践,为后续的项目开发打下坚实的基础。
8. **最佳实践** - 避免硬编码SQL,使用预编译的PreparedStatement来防止SQL注入。 - 使用JdbcTemplate的批处理功能提高性能。 - 尽可能使用`NamedParameterJdbcTemplate`,提高代码的可读性。 通过理解并熟练...
Struts2.3.4+Spring3.1.1+JdbcTemplate 整合示例 ...为了深入学习,可以查看每个组件的官方文档,了解更丰富的特性和最佳实践。同时,通过调试和修改DEMO,可以更直观地感受到它们协同工作的方式。
10. **最佳实践**: - 使用PreparedStatement代替Statement,防止SQL注入。 - 尽量避免在循环中执行数据库操作,可以批量处理以提高效率。 - 根据实际需求选择合适的RowMapper,如BeanPropertyRowMapper,自定义...
《Java EE设计模式:Spring企业级开发最佳实践》是一本深度探讨如何在企业级Java应用程序中有效运用设计模式的著作。这本书聚焦于Spring框架,它作为Java EE领域中最为广泛使用的开源框架之一,极大地简化了企业级...
虽然`JdbcTemplate`提供了很多便利,但为了提高性能,应遵循以下最佳实践: - 避免过度使用`SimpleJdbcInsert`和`SimpleJdbcCall`,因为它们在每次调用时都会创建新的PreparedStatement对象。 - 使用参数化查询而...
总的来说,"图书管理系统"通过Spring、SpringMVC和JdbcTemplate的组合,构建了一个功能完备、易于维护的后台系统,展示了JavaWeb开发的最佳实践。对于学习和理解这些技术,以及如何将它们应用到实际项目中,这是一个...
本资源包含的是"Spring企业级开发最佳实践源代码",这将帮助我们深入理解Spring如何在实际项目中应用这些模式。 1. **依赖注入(Dependency Injection, DI)模式**:Spring的核心特性之一,它允许开发者在运行时...
五、最佳实践与注意事项 1. **避免硬编码SQL**:尽量使用PreparedStatement,提升安全性,易于维护。 2. **合理设置事务边界**:避免过多的事务开启,注意事务的粒度控制。 3. **异常处理**:正确捕获和处理...
文档是理解和使用JdbcTemplate的重要资源,它包含了详细的API参考、示例代码和最佳实践。通过阅读文档,开发者可以更好地了解JdbcTemplate的各种功能,如何正确配置和使用它,以及如何解决遇到的问题。 综上所述,...
`JdbcTemplate`是Spring框架中的一个核心组件,主要用于简化数据库操作。它提供了一种模板化的JDBC编程方式,使得开发者...通过阅读提供的博客链接(已省略),你可以获取更多关于`JdbcTemplate`的实际用例和最佳实践。
6. **最佳实践**: - 使用占位符参数化SQL以防止SQL注入攻击。 - 为每个操作创建单独的方法,保持代码清晰可读。 - 考虑使用`NamedParameterJdbcTemplate`,对于参数多的复杂SQL,其命名参数的方式更加直观。 综...
8. **最佳实践**: - 为了保持代码整洁,建议将SQL语句从方法体中分离到配置文件或资源文件中,使用`@Value`注解注入。 - 使用事务管理器来管理数据库事务,确保数据一致性。 通过以上内容,我们可以了解到...
10. **最佳实践**: - 避免直接在`JdbcTemplate`实例上调用方法,而是使用`@Autowired`注解创建bean并注入,以便于控制事务和更好的测试。 - 在处理大量数据时,考虑使用批处理操作以提高效率。 - 自定义异常...
《Spring框架4.3.6.RELEASE深度解析》 Spring框架是Java开发中的核心组件,以其模块化、可扩展性和强大的依赖注入特性而备受...在实际开发过程中,持续学习和实践Spring的最佳实践,将有助于提升软件质量和开发效率。
Spring框架是Java开发中最常用的轻量级开源框架之一,它以其强大的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...记得在观看过程中结合实际操作,理论与实践相结合,以达到最佳学习效果。
- 通过案例学习如何从源代码中提炼出设计模式和最佳实践。 #### 阅读建议 为了最大化地从本书中获益,建议读者具备一定的Java基础,并且最好有一定的Spring使用经验。本书不仅适合自学,也非常适合作为团队内部...