七十二、Spring与DAO操作 execute()

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 七十二、Spring与DAO操作 execute()

Spring 与 Dao 部分,是 Spring 的两大核心技术 IoC 与 AOP 的典型应用体现


对于 JDBC 模板的使用,是 IoC 的应用,是将 JDBC 模板对象注入给了 Dao 层的实现类。

对于 Spring 的事务管理,是 AOP 的应用,将事务作为切面织入到了 Service 层的业务方法中。


Spring 与 JDBC 模板


       为了避免直接使用 JDBC 而带来的复杂且冗长的代码,Spring 提供了一个强有力的模板 类---JdbcTemplate 来简化 JDBC 操作。并且,数据源 DataSource 对象与模板 JdbcTemplate 对象均可通过 Bean 的形式定义在配置文件中,充分发挥了依赖注入的威力。


概念:


什么是 JdbcTemplate?


       Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作


       Spring JDBC模块主要由4个包组成,分别是core(核心包)、dataSource(数据源包)、object(对象包)和support(支持包)。



       从上表可以看出,Spring对数据库的操作都

包名 说明
core 包含了JDBC的核心功能,包括JdbcTemplate类、sinpleJdbcInsert类、SimpleJdbcCal1类以及NamedParameterJdbcTemplate类。
dataSource 访问数据源的实用工具类,它有多种数据源的实现,可以在JavaEE容器外部测试JDBC代码。
object 以面向对象的方式访问数据库,它允许执行查询并将返回结果作为业务对象,可以在数据表的列和业务对象的属性之间映射查询结果。
support 包含了core和object包的支持类,例如,提供异常转换功能的SQLException类。

封装在了这几个包中,而想要使用Spring JDBC,就雪要对其进行配置。

配置数据源
<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/spring"/>property name="username" value="root"/>
<property name="password" value="root"/>
<bean>
配置JDBC模板
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>注入数据源
</bean>
<bean id="xxx" class="Xxx">配置需要实例化的Bean
<properame="jdbcTemplate" ref="jdbcTemplate"/>注入JDBC模板
</bean>

       关于上述示例dataSource配置中的4个属性说明,如下表所示:


属性名

含义

driverClassName

所使用的驱动名称,对应驱动JAR包中的 Driver类。

url

数据源所在地址。

username

访问数据库的用户名。

password

访问数据库的密码


方法 说明


在JdbcTemplate核心类中,提供了大量的更新和查询数据库的方法,我们就是使用的这些方法来操作数据库的。


方法

说明

execute()

execute(String sql)方法可用于执行sql语句

update()

update()用于执行插入、更新和删除操作

query()

update()用于执行数据查询操作

                                                       ✨✨✨我是分割线✨✨✨


jdbc实战操作


       1、创建package


82.png


        2、src下创建 applicationContext.xml


83.png


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
  <!-- 1配置数据源 -->
  <bean id="dataSource"
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <!--数据库驱动 -->
  <property name="driverClassName"
    value="com.mysql.cj.jdbc.Driver" />
  <!--连接数据库的url -->
  <property name="url"
    value="jdbc:mysql://localhost:3306/spring?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT&amp;useSSL=false" />
  <!--连接数据库的用户名 -->
  <property name="username" value="root" />
  <!--连接数据库的密码 -->
  <property name="password" value="123456" />
  </bean>
  <!-- 2配置JDBC模板 -->
  <bean id="jdbcTemplate"
  class="org.springframework.jdbc.core.JdbcTemplate">
  <!-- 默认必须使用数据源 -->
  <property name="dataSource" ref="dataSource" />
  </bean>
</beans>

       3、lib目录下引入 jar 包


SSM-jar包全家桶:https://tuomasi.lanzouy.com/b02uszjch


       密码:jars


       4、创建class


package com.Example.jdbc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
public class JdbcTemplateTest {
  /**
  * 使用execute()方法建表
  */
  public static void main(String[] args) {
  // 加载配置文件
  ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
  // 获取JdbcTemplate实例
  JdbcTemplate jdTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
  // 使用execute()方法执行SQL语句,创建用户账户管理表account
  jdTemplate.execute("create table account(" + "id int primary key auto_increment," + "username varchar(50),"
    + "balance double)");
  System.out.println("账户表account创建成功!");
  }
}

       5、创建数据库


create database spring;
mysql> create database spring;
Query OK, 1 row affected (0.02 sec)
mysql> use spring;
Database changed
mysql> show tables;
Empty set (0.02 sec)

        6、运行程序


84.png


       7、查看数据库


mysql> use spring;
Database changed
mysql> show tables;
+------------------+
| Tables_in_spring |
+------------------+
| account          |
+------------------+
1 row in set (0.00 sec)
mysql> desc account;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int         | NO   | PRI | NULL    | auto_increment |
| username | varchar(50) | YES  |     | NULL    |                |
| balance  | double      | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

       注:account 数据表已经创建成功。


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
NoSQL Java Redis
Redis进阶-Jedis以及Spring Boot操作 Redis 5.x Cluster
Redis进阶-Jedis以及Spring Boot操作 Redis 5.x Cluster
120 0
|
25天前
|
Java 数据库连接 数据库
从入门到精通---深入剖析Spring DAO
在Java企业级开发中,Spring框架以其强大的功能和灵活性,成为众多开发者的首选。Spring DAO(Data Access Object)作为Spring框架中处理数据访问的重要模块,对JDBC进行了抽象封装,极大地简化了数据访问异常的处理,并能统一管理JDBC事务。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring DAO,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
23 1
|
6月前
|
Java Spring 容器
spring如何进行依赖注入,通过set方法把Dao注入到serves
spring如何进行依赖注入,通过set方法把Dao注入到serves
|
6月前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
75 2
|
6月前
|
Java 数据库连接 数据库
Spring日志完结篇,MyBatis操作数据库(入门)
Spring日志完结篇,MyBatis操作数据库(入门)
|
6月前
|
Java Spring
spring练习32-删除用户操作
spring练习32-删除用户操作
|
7月前
|
NoSQL Java 网络安全
在spring中操作Redis
在spring中操作Redis
71 0
|
7月前
|
SQL Java 数据库连接
Springboot框架整合Spring JDBC操作数据
JDBC是Java数据库连接API,用于执行SQL并访问多种关系数据库。它包括一系列Java类和接口,用于建立数据库连接、创建数据库操作对象、定义SQL语句、执行操作并处理结果集。直接使用JDBC涉及七个步骤,包括加载驱动、建立连接、创建对象、定义SQL、执行操作、处理结果和关闭资源。Spring Boot的`spring-boot-starter-jdbc`简化了这些步骤,提供了一个在Spring生态中更便捷使用JDBC的封装。集成Spring JDBC需要添加相关依赖,配置数据库连接信息,并通过JdbcTemplate进行数据库操作,如插入、更新、删除和查询。
91 0
|
7月前
|
SQL Java 数据库连接
Springboot框架整合Spring Data JPA操作数据
Spring Data JPA是Spring基于ORM和JPA规范封装的框架,简化了数据库操作,提供增删改查等接口,并可通过方法名自动生成查询。集成到Spring Boot需添加相关依赖并配置数据库连接和JPA设置。基础用法包括定义实体类和Repository接口,通过Repository接口可直接进行数据操作。此外,JPA支持关键字查询,如通过`findByAuthor`自动转换为SQL的`WHERE author=?`查询。
93 0
|
7月前
|
JSON Java 数据处理
Spring Boot与Jsonson对象:灵活的JSON操作实战
【4月更文挑战第28天】在现代Web应用开发中,JSON数据格式的处理至关重要。假设 "Jsonson" 代表一个类似于Jackson的库,这样的工具在Spring Boot中用于处理JSON。本篇博客将介绍Spring Boot中处理JSON数据的基本概念,并通过实际例子展示如何使用类似Jackson的工具进行数据处理。
254 0