小言_互联网的博客

Spring JDBC

338人阅读  评论(0)

一.Spring JDBC 概述

Spring JDBC是Spring所提供的持久层技术,它主要的目的是降低JDBC API的使用难度,以一种更直接,更简洁的方式使用JDBC API. ​ Spring JDBC 模块负责数据库资源和错误处理,大大简化了开发人员对数据库的操作.

二.Spring JDBC的配置

1.下载 Spring JdbcTemplate 的 jar 包

此处我们需要导入Spring jdbc 和 阿里数据源的jar包,它们在Maven仓库中的项目坐标如下:


  
  1. <!-- spring-jdbc -->
  2.   <dependency>
  3.       <groupId>org.springframework </groupId>
  4.       <artifactId>spring-jdbc </artifactId>
  5.       <version>5.2.2.RELEASE </version>
  6.   </dependency>
  7.   <!-- 阿里数据源 -->
  8.   <dependency>
  9.       <groupId>com.alibaba </groupId>
  10.       <artifactId>druid </artifactId>
  11.       <version>1.1.10 </version>
  12.   </dependency>

注:

  • Spring JDBCjar包提供数据访问层的功能,提供了JdbcTemplate封装的方法操作数据库.我们主要使用它的事物管理功能

  • 阿里巴巴数据源提供了数据库连接池功能组件,是一款阿里开源的数据库管理组件,音译为德鲁伊.其中提供了与数据库连接的实现,提供数据库连接池功能

    什么是数据库连接池?

    我们在进行数据库连接时需要频繁的创建数据库连接对象(Connection)开销比较大,因此提出了数据库连接池的概念 ​ 我们使用数据库连接池事先缓存部分连接对象,使用时直接从数据库连接池中获取,使用完毕之后也不尽兴销毁,还回数据库连接池中,减少了创建连接对象,销毁对象所需的时间. 常见的数据库连接池组件:

    c3po,dbcp,JNDI,阿里数据源

2.导入属性文件

进行此步骤的前提是我们创建了属性文件并在其中存入了jdbc信息


  
  1.  driverName=com.mysql.cj.jdbc.Driver
  2.  url=jdbc:mysql://127.0.0.1:3306/ssmdb?serverTimezone=Asia/Shanghai
  3.  uname=XXX
  4.  psw=XXX

注:

此处为了防止Spring jdbc在获取信息时发生错误,我们需要在此处将username和password进行修改,之后在配置文件中进行配置即可.

 <context:property-placeholder location="config.properties"/>

3.管理数据源对象

此步骤进行的是Spring与数据库的链接操作,将属性文件中的信息传入Spring


  
  1.   <?xml version="1.0" encoding="UTF-8"?>
  2.   <beans xmlns="http://www.springframework.org/schema/beans"
  3.         xmlns:context= "http://www.springframework.org/schema/context"
  4.         xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  5.         xsi:schemaLocation= "http://www.springframework.org/schema/beans
  6.                             http://www.springframework.org/schema/beans/spring-beans.xsd
  7.                             http://www.springframework.org/schema/context
  8.                             http://www.springframework.org/schema/context/spring-context.xsd">
  9.  ​
  10.       <!--配置读取属性文件-->
  11.       <context:property-placeholder location="classpath:config.properties"> </context:property-placeholder>
  12.       <!--Spring管理数据源-->
  13.       <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
  14.           <property name="driverClassName" value="${driverName}"> </property>
  15.           <property name="url" value="${url}"> </property>
  16.           <property name="username" value="${uname}"> </property>
  17.           <property name="password" value="${psw}"> </property>
  18.       </bean>
  19.   </beans>

4.在配置文件中创建JdbcTemplate


  
  1.   <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  2.   <property name="dataSource" ref="dataSource"> </property>
  3.   </bean>

5.在类中获得JdbcTemplate对象,就可以直接使用


  
  1.   package com.ffyc.springdemo.dao;
  2.  ​
  3.  ​
  4.   import org.springframework.beans.factory.annotation.Autowired;
  5.   import org.springframework.jdbc.core.JdbcTemplate;
  6.   import org.springframework.stereotype.Repository;
  7.  ​
  8.   @Repository
  9.   public class AdminDao {
  10.  ​
  11.       @Autowired
  12.      JdbcTemplate jdbcTemplate;
  13.  ​
  14.       public void saveAdmin (){
  15.          System.out.println( "保存管理员");
  16.          jdbcTemplate.update( "insert into admin(account,password,gender)values (?,?,?)", "wh", "111", "女");
  17.     }
  18.  }
  19.  ​

6.测试类:

此处我们以基于注解的方式进行了SpringBean的配置,其余类在我的SpringBean博客中有介绍.


  
  1. package com.ffyc.springdemo.test;
  2.  ​
  3.   import com.ffyc.springdemo.service.AdminService;
  4.   import org.junit.jupiter.api.Test;
  5.   import org.springframework.context.ApplicationContext;
  6.   import org.springframework.context.support.ClassPathXmlApplicationContext;
  7.  ​
  8.   public class Test1 {
  9.  ​
  10.       @Test
  11.       public   void test () {
  12.  ​
  13.           ApplicationContext app = new ClassPathXmlApplicationContext( "spring.xml");
  14.           AdminService adminService = app.getBean( "adminService", AdminService.class);
  15.          adminService.saveAdmin();
  16.     }
  17.  }
  18.  ​

这样我们就通过Spring Jdbc实现了JDBC操作,取代了传统jdbc方式的繁琐步骤

注:

Spring JDBC 默认自动向数据库提交事物,我们无需手动提交方可在数据库中查看SQL语句执行结果.

JdbcTemplate 中常用的方法

  • execute:无返回值,可执行 ddl,增删改语句

  • update:执行新增、修改、删除语句

  • queryForXXX:执行查询相关语句


转载:https://blog.csdn.net/weixin_52629592/article/details/127928077
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场