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

举报
托马斯-酷涛 发表于 2022/05/26 00:53:36 2022/05/26
【摘要】 Spring 与 Dao 部分,是 Spring 的两大核心技术 IoC 与 AOP 的典型应用体现 对于 JDBC 模板的使用,是 IoC 的应用,是将 JDBC 模板对象注入给了 Dao 层的实现类。对于 Spring 的事务管理,是 AOP 的应用,将事务作为切面织入到了 Service 层的业务方法中。 目录 ...

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

  • 对于 JDBC 模板的使用,是 IoC 的应用,是将 JDBC 模板对象注入给了 Dao 层的实现类。
  • 对于 Spring 的事务管理,是 AOP 的应用,将事务作为切面织入到了 Service 层的业务方法中。

目录

Spring 与 JDBC 模板

方法说明

jdbc实战操作


Spring 与 JDBC 模板

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

概念:

什么是 JdbcTemplate?

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

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

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

        从上表可以看出,Spring对数据库的操作都封装在了这几个包中,而想要使用Spring JDBC,就雪要对其进行配置。


  
  1. 配置数据源
  2. <bean id="dataSource"
  3. class="org.springframework.jdbc.datasource.DriverManagerDataSource">property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  4. <property name="url" value="jdbc:mysql://localhost:3306/spring"/>property name="username" value="root"/>
  5. <property name="password" value="root"/>
  6. <bean>
  7. 配置JDBC模板
  8. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  9. <property name="dataSource" ref="dataSource"/>注入数据源
  10. </bean>
  11. <bean id="xxx" class="Xxx">配置需要实例化的Bean
  12. <properame="jdbcTemplate" ref="jdbcTemplate"/>注入JDBC模板
  13. </bean>

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

属性名 含义
driverClassName 所使用的驱动名称,对应驱动JAR包中的 Driver类。
url 数据源所在地址。
username 访问数据库的用户名。
password 访问数据库的密码

方法说明

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

方法 说明
execute() execute(String sql)方法可用于执行sql语句
update() update()用于执行插入、更新和删除操作
query() update()用于执行数据查询操作

                                                        ✨✨✨我是分割线✨✨✨

jdbc实战操作

        1、创建package

         2、src下创建 applicationContext.xml


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

        3、lib目录下引入 jar 包

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

        密码:jars

        4、创建class


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

        5、创建数据库

 create database spring;
 

  
  1. mysql> create database spring;
  2. Query OK, 1 row affected (0.02 sec)
  3. mysql> use spring;
  4. Database changed
  5. mysql> show tables;
  6. Empty set (0.02 sec)

         6、运行程序

        7、查看数据库


  
  1. mysql> use spring;
  2. Database changed
  3. mysql> show tables;
  4. +------------------+
  5. | Tables_in_spring |
  6. +------------------+
  7. | account |
  8. +------------------+
  9. 1 row in set (0.00 sec)
  10. mysql> desc account;
  11. +----------+-------------+------+-----+---------+----------------+
  12. | Field | Type | Null | Key | Default | Extra |
  13. +----------+-------------+------+-----+---------+----------------+
  14. | id | int | NO | PRI | NULL | auto_increment |
  15. | username | varchar(50) | YES | | NULL | |
  16. | balance | double | YES | | NULL | |
  17. +----------+-------------+------+-----+---------+----------------+
  18. 3 rows in set (0.00 sec)

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

文章来源: tuomasi.blog.csdn.net,作者:托马斯-酷涛,版权归原作者所有,如需转载,请联系作者。

原文链接:tuomasi.blog.csdn.net/article/details/123149019

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。