景县网站建设公司,服务器出租网站,wordpress免费搭建个人博客,国内课题组建设常用网站企业级应用开发中#xff0c;很少有人直接使用原生的 JDBC API 进行开发#xff0c;因为使用 JDBC API 对数据库进行操作十分繁琐#xff0c;例如我们需要手动控制数据库连接的开启#xff0c;异常处理、事务处理、最后还要手动关闭连接释放资源等等。 Spring 提供了一个 S…企业级应用开发中很少有人直接使用原生的 JDBC API 进行开发因为使用 JDBC API 对数据库进行操作十分繁琐例如我们需要手动控制数据库连接的开启异常处理、事务处理、最后还要手动关闭连接释放资源等等。 Spring 提供了一个 Spring JDBC 模块它对 JDBC API 进行了封装其的主要目的降低 JDBC API 的使用难度以一种更直接、更简洁的方式使用 JDBC API。 使用 Spring JDBC开发人员只需要定义必要的参数、指定需要执行的 SQL 语句即可轻松的进行 JDBC 编程对数据库进行访问。 驱动的加载、数据库连接的开启与关闭、SQL 语句的创建与执行、异常处理以及事务处理等繁杂乏味的工作则都是由 Spring JDBC 完成的。Spring JDBC 提供了多个实用的数据库访问工具以简化 JDBC 的开发其中使用最多就是 JdbcTemplate。
JdbcTemplate
JdbcTemplate 是 Spring JDBC 核心包core中的核心类它可以通过配置文件、注解、Java 配置类等形式获取数据库的相关信息实现了对 JDBC 开发过程中的驱动加载、连接的开启和关闭、SQL 语句的创建与执行、异常处理、事务处理、数据类型转换等操作的封装。我们只要对其传入SQL 语句和必要的参数即可轻松进行 JDBC 编程。 JdbcTemplate 的全限定命名为 org.springframework.jdbc.core.JdbcTemplate它提供了大量的查询和更新数据库的方法如下表所示。
方法说明public int update(String sql)用于执行新增、更新、删除等语句 sql需要执行的 SQL 语句args 表示需要传入到 SQL 语句中的参数。public int update(String sql,Object... args)public void execute(String sql)可以执行任意 SQL一般用于执行 DDL 语句 sql需要执行的 SQL 语句action 表示执行完 SQL 语句后要调用的函数。public T execute(String sql, PreparedStatementCallback action)public T ListT query(String sql, RowMapperT rowMapper, Nullable Object... args) 用于执行查询语句 sql需要执行的 SQL 语句rowMapper用于确定返回的集合List的类型args表示需要传入到 SQL 语句的参数。public T T queryForObject(String sql, RowMapperT rowMapper, Nullable Object... args)public int[] batchUpdate(String sql, ListObject[] batchArgs, final int[] argTypes) 用于批量执行新增、更新、删除等语句 sql需要执行的 SQL 语句argTypes需要注入的 SQL 参数的 JDBC 类型batchArgs表示需要传入到 SQL 语句的参数。 在 src 目录下创建一个 jdbc.properties并在该配置文件中对数据库连接信息进行配置。 jdbc.drivercom.mysql.cj.jdbc.Driver
jdbc.urljdbc:mysql://127.0.0.1:3306/spring_jdbc_db
jdbc.usernameroot
jdbc.passwordroot 在 src 目录下创建一个 XML 配置文件 Beans.xml配置内容如下。
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd!--开启组件扫描--context:component-scan base-packagecom.xiaorizi/context:component-scan!--引入 jdbc.properties 中的配置--context:property-placeholder locationclasspath:jdbc.properties/context:property-placeholder!--定义数据源 Bean--bean iddataSource classorg.springframework.jdbc.datasource.DriverManagerDataSource!--数据库连接地址--property nameurl value${jdbc.url}/!--数据库的用户名--property nameusername value${jdbc.username}/!--数据库的密码--property namepassword value${jdbc.password}/!--数据库驱动--property namedriverClassName value${jdbc.driver}//bean!--定义JdbcTemplate Bean--bean idjdbcTemplate classorg.springframework.jdbc.core.JdbcTemplate!--将数据源的 Bean 注入到 JdbcTemplate 中--property namedataSource refdataSource/property/bean/beans
在以上配置中我们共定义了两个 Bean
dataSource 为数据库连接池对象的 Bean。jdbcTemplate 则为 JdbcTemplate 的 Bean它由一个名为 datasSource 的属性。
Spring 默认使用 DriverManagerDataSource 对数据库连接池进行管理我们可以在 Spring 的 XML 配置文件中定义 DriverManagerDataSource 的 Bean并注入到 JdbcTempate 的 Bean 中。 在 dataSource 中定义了 4 个连接数据库的属性如下表所示。
属性名说明driverClassName所使用的驱动名称对应驱动 JAR 包中的 Driver 类url数据源所在地址username访问数据库的用户名password访问数据库的密码