Spring 框架学习——AOP之JdbcTemplate的使用

本文介绍了Spring框架中用于数据库访问的JdbcTemplate,它是Spring JDBC核心包的核心类,简化了数据库操作。文章详细讲解了JdbcTemplate的工作模式,包括其与NamedParameterJdbcTemplate和SimpleJdbcTemplate的区别,并展示了使用JdbcTemplate的基本步骤,以及如何配置和使用它来执行数据库的增删查改操作。
摘要由CSDN通过智能技术生成

一、概述

使用Spring进行基本的JDBC访问数据库有多种选择。Spring至少提供了三种不同的工作模式:Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDBC模板类是第一种工作模式。三种模式如下:

  • JdbcTemplate:是Spring中最基本的JDBC模板, 利用JDBC和简单的索引参数查询对数据库进行简单访问
  • NamedParameterJdbcTemplate:能够在查询的时候把值绑定到SQL里的命名参数,而不是索引参数
    NamedParameterJdbcTemplate内部包含了一个JdbcTemplate,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干
  • SimpleJdbcTemplate:利用Java5的特性,比如自动装箱、通用和可变参数列表来简化JDBC模板的使用SimpleJdbcTemplate内部包含了一个NamedParameterJdbcTemplate

NamedParameterJdbcTemplate相对于JdbcTemplate主要增加了参数可以命名的功能。
NamedParameterJdbcTemplate能做的事情SimpleJdbcTemplate都能干,SimpleJdbcTemplate相对于NamedParameterJdbcTemplate主要增加了JDK5.0的泛型和可变长度参数支持。

下面主要来讲 JdbcTemplate:

JdbcTemplate类通过模板设计模式帮助我们消除了冗长的代码,只做需要做的事情(即可变部分),并且帮我们做哪些固定部分,如连接的创建及关闭。 JdbcTemplate类对可变部分采用回调接口方式实现,如ConnectionCallback通过回调接口返回给用户一个连接,从而可以使用该连 接做任何事情、StatementCallback通过回调接口返回给用户一个Statement,从而可以使用该Statement做任何事情等等,还 有其他一些回调接口如图所示。

Spring JDBC抽象框架所带来的价值将在以下几个方面得以体现:(注:使用了Spring JDBC抽象框架之后,应用开发人员只需要完成斜体字部分的编码工作。)

  • 定义数据库连接参数
  • 打开数据库连接
  • 声明SQL语句
  • 预编译并执行SQL语句
  • 遍历查询结果(如果需要的话)
  • 处理每一次遍历操作
  • 处理抛出的任何异常
  • 处理事务
  • 关闭数据库连接

Spring将替我们完成所有使用JDBC API进行开发的单调乏味的、底层细节处理工作。

二、使用步骤

1、使用JdbcTemplate来访问数据
只需要配置DataSource就能够让JdbcTemplate工作,如下配置:

    <!-- 配置数据源 -->
    <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/test" />
        <property name="username" value="root" />
        <property name="password" value="christmas258@" />
    </bean>

    <!--配置一个JdbcTemplate实例,并将这个“共享的”,“安全的”实例注入到不同的DAO类中去 -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource" />
    </bean>

2、现在我们可以把JdbcTemplate装配到DAO,使用它来访问数据库

    @Autowired
    private JdbcTemplate jdbcTemplate;

3、开始操作数据库,如下面的插入

    @Override
    public void insert(Student student) {
        jdbcTemplate.update("INSERT INTO student VALUES('" + student.getId()
                + "', '" + student.getName() + "', '" + student.getAge()
                + "', '" + student.getSex() + "')");
    }

三、使用范例

这里我们要实例Spring Jdbc和Mysql数据库连接,建表、执行插入、查找、删除等功能。

1、新建一个JavaProject工程,导入包mysql-connector-java-5.1.22-bin.jar+spring3.2+commons-logging-1.2.jar

2、首先先建好数据库对应的Model:

package com.mucfc.model;
/**  
*数据库传输类
*/
public class Student {
   
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值