在Spring JDBC开发中,可以使用 JdbcTemplate 和 JdbcDaoSupport 类来简化整个数据库的操作过程。
在本教程中,我们将重复上一篇文章Spring+JDBC例子,看之前(无JdbcTemplate支持)和之后(含JdbcTemplate的支持)之间不同的例子。

1. 不使用JdbcTemplate示例

如果不用JdbcTemplate,必须创建大量的冗余代码(创建连接,关闭连接,处理异常)中的所有DAO数据库的操作方法 - 插入,更新和删除。它的效率并不是很高,容易出错和乏味。
private DataSource dataSource;public void setDataSource(DataSource dataSource) {this.dataSource = dataSource;}public void insert(Customer customer){String sql = "INSERT INTO CUSTOMER " +"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";Connection conn = null;try {conn = dataSource.getConnection();PreparedStatement ps = conn.prepareStatement(sql);ps.setInt(1, customer.getCustId());ps.setString(2, customer.getName());ps.setInt(3, customer.getAge());ps.executeUpdate();ps.close();} catch (SQLException e) {throw new RuntimeException(e);} finally {if (conn != null) {try {conn.close();} catch (SQLException e) {}}}}

2. 使用JdbcTemplate示例

使用JdbcTemplate可节省大量的冗余代码,因为JdbcTemplate类会自动处理它。
private DataSource dataSource;private JdbcTemplate jdbcTemplate;public void setDataSource(DataSource dataSource) {this.dataSource = dataSource;}public void insert(Customer customer){String sql = "INSERT INTO CUSTOMER " +"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";jdbcTemplate = new JdbcTemplate(dataSource);jdbcTemplate.update(sql, new Object[] { customer.getCustId(),customer.getName(),customer.getAge()  });}
看看有什么不同?

3. 使用JdbcDaoSupport示例

通过扩展 JdbcDaoSupport,设置数据源,并且 JdbcTemplate 在你的类中不再是必需的,只需要正确的数据源注入JdbcCustomerDAO。可以使用 getJdbcTemplate()方法得到 JdbcTemplate。

public class JdbcCustomerDAO extends JdbcDaoSupport implements CustomerDAO{//no need to set datasource herepublic void insert(Customer customer){String sql = "INSERT INTO CUSTOMER " +"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";getJdbcTemplate().update(sql, new Object[] { customer.getCustId(),customer.getName(),customer.getAge()  });}
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/yiibaijava" /><property name="username" value="root" /><property name="password" value="password" /></bean></beans>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="customerDAO" class="com.yiibai.customer.dao.impl.JdbcCustomerDAO"><property name="dataSource" ref="dataSource" /></bean></beans>
注: 在Spring JDBC开发,它总是建议使用,总是建议使用 JdbcTemplate和JdbcDaoSupport,而不使用自己的JDBC编程代码。
下载代码  – http://pan.baidu.com/s/1bnIGdiR

Spring JdbcTemplate+JdbcDaoSupport实例相关推荐

  1. Spring JdbcTemplate batchUpdate() 实例

    在某些情况下,可能需要将一批记录插入到数据库中.如果你对每条记录调用一个插件的方法,SQL语句将被重复编译,造成系统缓慢进行. 在上述情况下,你可以使用 JdbcTemplate BATCHUPDAT ...

  2. Spring JdbcTemplate查询实例

    这里有几个例子向您展示如何使用JdbcTemplate的query()方法来查询或从数据库提取数据.整个项目的目录结构如下: 1.查询单行数据 这里有两种方法来查询或从数据库中提取单行记录,并将其转换 ...

  3. Spring 的持久化实例(JDBC, JdbcTemplate、HibernateDaoSupport、JdbcDaoSupport、SqlSessionDaoSupport等)...

    2019独角兽企业重金招聘Python工程师标准>>> 一.表(这里用mysql,数据库名为yiibai) CREATE TABLE `customer` (`CUST_ID` in ...

  4. spring JdbcTemplate数据库查询实例

    使用JdbcTemplate查询数据库的例子 配置等可以看前一篇文章: Spring JdbcTemplate实例 创建数据库 可以使用下面的SQL create table A( `id` INT ...

  5. Spring JdbcTemplate实例

    简介 Spring JdbcTemplate类是Spring提供的简化数据库操作的一个类,这个类使用了模板方法模式,可以减少一些重复代码.这里主要演示一下 JdbcTemplate 的使用. 完整的代 ...

  6. 【SSM框架系列】Spring - JdbcTemplate声明式事务

    JdbcTemplate概述 以往使用jdbc时,每次都需要自己获取PreparedStatement,执行sql语句,关闭连接等操作.操作麻烦冗余,影响编码的效率. Spring把对数据库的操作在j ...

  7. Spring JdbcTemplate示例

    Spring JdbcTemplate示例 Spring JdbcTemplate是Spring JDBC包中最重要的类. 目录[ 隐藏 ] 1 Spring JdbcTemplate 1.1 Spr ...

  8. JAVA入门[18]-JdbcTemplate简单实例

    一.关于JdbcTemplate JdbcTemplate是最基本的Spring JDBC模板,这个模板支持简单的JDBC数据库访问功能以及基于索引参数的查询. Spring数据访问模板:在数据库操作 ...

  9. Spring JdbcTemplate方法详解

    2019独角兽企业重金招聘Python工程师标准>>> Spring JdbcTemplate方法详解 标签: springhsqldbjava存储数据库相关sql 2012-07- ...

最新文章

  1. R语言临床预测模型的评价指标与验证指标实战:自定义的综合判别改善指标(Integrated Discrimination Improvement, IDI)函数
  2. jsPlumb.jsAPI阅读笔记(官方文档翻译)
  3. Android Service的使用方法 音乐播放器实例
  4. 从七个方面,面试大厂高级工程师
  5. python udp编程_在Python下进行UDP网络编程的教程
  6. python中list和str互相转换
  7. objective-c 语法快速过(4)
  8. php将年月日_php生成年月日下载列表的方法
  9. 选购多媒体音箱常见哪些误区?
  10. JUnit测试用例– Eclipse和Maven
  11. mysql图形界面navicat的连接
  12. Oracle 客户端 PLSQL 12.0.7 安装、数据导出、Oracle 执行/解释计划
  13. 关于TRACERT和TTL
  14. 一起用Python做个自动化弹钢琴脚本,我竟然弹出了《天空之城》!
  15. python中seaborn报错These `style` levels are missing dashes解决办法
  16. 2021-01-04
  17. Scrapy框架流程图解析
  18. HTML转换为PDF介绍
  19. 友盟推送点击行为处理
  20. (100天2小时第二十九天)几种常见的图像噪声及去噪处理算法

热门文章

  1. Qt Creator在桌面上预览
  2. C++False position求根的实现算法(附完整源码)
  3. QML基础类型之point
  4. Scikit-learn——train_test_split()方法的功能和使用
  5. java sum_java math.sum
  6. typedef,结构体,共用体,联合体
  7. 操作多个表_5_记录匹配不上
  8. 【C语言】%[修饰符] 格式字符
  9. ideal2018提示内存不足_IntelliJ IDEA 2018 设置代码超出限制自动换行(最新版)
  10. linux内存free低,Linux上的内存使用情况与`free`不匹配