当前位置: 首页 > news >正文

关于Spring JBDC

一、什么是Spring JDBC?

什么是JDBC?

JDBC(Java Database Connectivity)是 Java 语言访问数据库的标准 API,它定义了一组接口和类,允许 Java 程序与各种数据库进行交互。JDBC 提供了执行 SQL 语句、处理结果集、管理事务等功能,是 Java 与数据库之间的桥梁。

什么是Spring JDBC?

Spring JDBC 是 Spring 框架提供的一个数据访问模块,它简化了 JDBC 的使用,封装了大量重复的代码,如资源管理、异常处理等。Spring JDBC 的核心是JdbcTemplate类,它提供了执行 SQL 查询、更新和存储过程调用的方法,同时处理了底层 JDBC 资源的创建和释放,大大减少了样板代码。

JdbcTemplate类:

Spring JDBC 是 Spring 框架提供的一个数据访问模块,它简化了 JDBC 的使用,封装了大量重复的代码,如资源管理、异常处理等。Spring JDBC 的核心是JdbcTemplate类,它提供了执行 SQL 查询、更新和存储过程调用的方法,同时处理了底层 JDBC 资源的创建和释放,大大减少了样板代码。

(1)execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句。

(2)update、batchUpdate方法:用于执行新增、修改与删除等语句。

(3)query和queryForXXX方法:用于执行查询相关的语句。

(4)call方法:用于执行数据库存储过程和函数相关的语句。

二、实际操作

1.Maven POM文件配置

作用:

  • spring-context:提供 Spring 的 IoC 容器功能
  • spring-jdbc:提供 Spring JDBC 模块的核心类
  • mysql-connector-java:MySQL 数据库的驱动程序
  • junit:用于编写和运行单元测试
<dependencies><!-- Spring Core --><!--spring-context:提供 Spring 的 IoC 容器功能--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.21</version></dependency><!--spring-jdbc:提供 Spring JDBC 模块的核心类--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.21</version></dependency><!--mysql驱动包,MySQL 数据库的驱动程序--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><!-- Junit 测试 用于编写和运行单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies>

 2.User实体类

作用:

  • 对应数据库中的user
  • 用于封装从数据库查询到的数据
  • BeanPropertyRowMapper会自动将结果集映射到这个类的实例
public class User {private Integer id;private String username;private Date birthday;private String sex;private String address;@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", birthday=" + birthday +", sex='" + sex + '\'' +", address='" + address + '\'' +'}';}public User() {} // setter/getter方法
}

 3.Spring配置文件(SpringJBDC.xml)

作用:

  • dataSource:配置数据库连接信息
    • driverClassName:MySQL 驱动类
    • url:数据库连接 URL
    • username/password:数据库登录凭证
  • jdbcTemplate:Spring JDBC 的核心类
    • 通过dataSource属性注入数据源
    • 负责执行 SQL 语句并处理结果

DriverManagerDataSource 是 Spring 框架提供的一个简单的数据源实现类,位于 org.springframework.jdbc.datasource 包中。它用于创建和管理数据库连接,是 Spring JDBC 模块的基础组件之一。

核心作用

DriverManagerDataSource 的主要功能是:

  1. 封装数据库连接信息(URL、用户名、密码等)。
  2. 基于 JDBC 的 DriverManager 创建数据库连接
  3. 作为数据源供 JdbcTemplate 或其他持久层工具使用
<!--配置连接DriverManagerDataSource --><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/mybatis_demo"/><property name="username" value="root"/><property name="password" value="2020"/></bean><!-- 配置jdbcTemplate --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource"  ref="dataSource"></property></bean>

4.JBDCTest测试类

public class JBDCTest {ApplicationContext ctx=new ClassPathXmlApplicationContext("SpringJBDC.xml");;JdbcTemplate jdbcTemplate= (JdbcTemplate) ctx.getBean("jdbcTemplate");//关键方法://jdbcTemplate.execute(sql):执行任意 SQL 语句,通常用于 DDL 操作//jdbcTemplate.update(sql, params):执行 INSERT/UPDATE/DELETE 语句,返回受影响的行数//jdbcTemplate.query(sql, rowMapper):执行查询,使用BeanPropertyRowMapper将结果集自动映射为User对象列表@Testpublic void testInsert(){String sql="insert into user(username,address) values('李连杰','上海')";jdbcTemplate.execute(sql);}@Testpublic void testUpdate(){String sql="update user set username='稳杰',address='南海' where id=?";int res=jdbcTemplate.update(sql,2);System.out.println(res);}@Testpublic void testDelete(){String sql="delete from user where id=?";int res=jdbcTemplate.update(sql,18);System.out.println(res);}//查询列表@Testpublic void testQueryList(){String sql = "select * from user where address like '%京%'";List<User> userList= (List<User>) jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(User.class));System.out.println("查询List: ");for (User user : userList) {System.out.println(user);}System.out.println("数量: "+userList.size());}
}

 执行流程示例:

  1. 加载 Spring 配置文件,创建 IoC 容器
  2. 从容器中获取JdbcTemplate实例
  3. 调用JdbcTemplateupdate()方法执行 INSERT 语句
  4. JdbcTemplateDataSource获取连接
  5. 创建 Statement 对象,执行 SQL
  6. 处理返回结果,关闭资源

相关文章:

  • Unity Addressable使用之检测更新流程
  • 从 Cluely 融资看“AI 协同开发”认证:软件考试应该怎么升级?
  • PaddleOCR + Flask 构建 Web OCR 服务实战
  • 论文笔记:Large language model augmented narrative driven recommendations
  • es向量检索里的efSearchc参数是干嘛用的
  • 装配体镜像阵列与爆炸视图-装配体设计技能(2)
  • Hologres的Table Group和Shard简介
  • 秘塔AI搜索:国产无广告智能搜索引擎,重塑高效信息获取体验
  • c# .netCreateLinkedTokenSource链接令牌,取消信号异步执行
  • 使用模板创建uniapp提示未关联uniCloud问题
  • 考研408《计算机组成原理》复习笔记,第三章(1)——存储系统概念
  • leetcode:面试题 08.06. 汉诺塔问题
  • Linux->进程概念(精讲)
  • Golang 中接口嵌套的详细说明和使用示例
  • K8s入门指南:架构解析浓缩版与服务间调用实战演示
  • GetX 实现 MVVM 架构, 高效 路由管理 和 状态管理
  • Maven生命周期,测试
  • Oracle导入导出 exp命令和imp命令 expdp命令和impdp命令 19c导出兼容11g版本的dmp然后使用11g导入dmp
  • 算法-动态规划-钢条切割问题
  • Python商务数据分析——Python 入门基础知识学习笔记
  • 苏州网站建设招聘/seo排名怎么做
  • 猎趣网站/外贸订单怎样去寻找
  • 做网站和做网页有什么区别/百度推广竞价技巧
  • 重庆网站建设 红旗河沟/广州谷歌seo公司
  • wordpress阿里秀模板/搜狗排名优化工具
  • 广东网站建设开发/专业网站优化排名