Spring学习笔记 Spring JDBC框架

本文详细介绍了Spring JDBC框架,包括JdbcTemplate、NamedParameterJdbcTemplate和SimpleJdbc类的使用,如数据源创建、操作SQL及存储过程、Java对象映射等。通过示例展示了如何简化JDBC操作,提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring JDBC简介

先来看看一个JDBC的例子。我们可以看到为了执行一条SQL语句,我们需要创建连接,创建语句对象,然后执行SQL,然后操纵结果集获取数据。

try(Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD)){
    List<User> users = new ArrayList<>();
    try (Statement statement = connection.createStatement()) {
        try (ResultSet rs = statement.executeQuery("SELECT *FROM user")) {
            while (rs.next()) {
                User user = new User();
                user.setId(rs.getInt(1));
                user.setUsername(rs.getString(2));
                user.setPassword(rs.getString(3));
                user.setNickname(rs.getString(4));
                user.setBirthday(rs.getDate(5));
                users.add(user);
            }
        }
    }
}

其实这些步骤中有很多步骤都是固定的,Spring JDBC框架将这些操作封装起来, 我们只需要关注业务逻辑点即可。在Spring JDBC框架中,我们要做的事情如下:

  • 定义连接字符串参数。
  • 指定SQL语句。
  • 声明参数和参数类型。
  • 每次迭代结果集的操作。

Spring会帮我们完成以下事情:

  • 打开连接。
  • 准备和执行SQL语句。
  • 在需要的情况下迭代结果集。
  • 处理异常。
  • 操作事务。
  • 关闭结果集、语句和数据库连接。

使用JdbcTemplate

JdbcTemplate是Jdbc框架最重要的类,提供了较为底层的Jdbc操作。其它几个类都是在JdbcTemplate基础上封装了相关功能。

添加依赖

要在Gradle项目中使用Spring JDBC框架,添加如下一段。由于Spring JDBC的主要类JdbcTemlate需要一个数据源用来初始化,所以还需要一个数据源的实现。

compile group: 'org.springframework', name: 'spring-jdbc', version: '4.3.5.RELEASE'
compile group: 'org.apache.commons', name: 'commons-dbcp2', version: '2.1.1'

如果要使用Spring框架的其他功能,可能还需要添加对应的依赖。

创建Jdbc Template Bean

首先需要创建一个数据源Bean。为了将配置分离,我们先新建一个jdbc.properties文件。

jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=12345678

然后创建一个Spring配置文件jdbc.xml。这里用到了<context:property-placeholder>节点来导入其它配置文件。然后用这些属性创建一个数据源Bean,然后再利用数据源Bean来创建一个JdbcTemplate。

<?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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <bean id="dataSource" class="org.apache.commons.dbcp2.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="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg ref="dataSource"/>
    </bean>
    <context:property-placeholder location="jdbc.properties"/>
</beans>

JdbcTemplate操作

注册了JdbcTemplate之后,就可以将它注入到任何地方来使用了。首先它可以使用execute方法,执行任何SQL语句。这里创建了一个简单的MySQL用户表,只有主键和用户名。

jdbcTemplate.execute("CREATE TABLE user(id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) UNIQUE)");

它还可以使用update方法执行增加、更新和删除操作。

jdbcTemplate.update(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值