Spring & Spring MVC 12. Spring 对 JDBC 的支持

一、回顾 JDBC

我们在之前学完 MySQL 之后,就学习了 JDBC,可以通过 Java 操作数据库,但是哈,有挺多问题的。

以上代码片段具有冗长、重复、容易忘记某一步骤从而导致出错、显示控制事务、显示处理受检查异常等等。

有朋友可能重构出自己的一套 JDBC 模板,从而能简化日常开发,但自己开发的 JDBC 模板不够通用,而且对于每一套 JDBC 模板实现都差不多,从而导致开发人员必须掌握每一套模板。

而 Spring 为我们提供了一套 JDBC 抽象框架,用于简化 JDBC 开发,而且如果各个公司都使用该抽象框架,开发人员首先减少了学习成本,直接上手开发,下面来学习一下。

二、Spring JDBC

打开 Spring Framework 的官网

https://docs.spring.io/spring-framework/docs/current/reference/html/

找到第三个,Data Access with JDBC (https://docs.spring.io/spring-framework/docs/current/reference/html/data-access.html#jdbc

然后往下翻,我们看一个东西

扫描二维码关注公众号,回复: 12894051 查看本文章

就这个东西。

三、写个栗子

我们创建一个项目。把之前的 spring_test 的东西弄过来一些。

这里的这些 jar 就是从之前的项目中复制来的,如果不知道,请看一下之前 spring 的博客。

然后我们把官网的 xml 复制过来,顺便修改一下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    <bean id="studentDao" class="com.lemon1234.dao.StudentDao">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

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

</beans>

这里我们需要将之前的 dataSource 的 class 改成 org.springframework.jdbc.datasource.DriverManagerDataSource,这个是 spring 自带的,官网的是引入的 apache 的~

第一步

我们首先去弄个 jdbc.properties,因为我们需要有数据库的连接信息

jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=123456

这里注意一下,我本地使用的是 MySQL 8.0.22 的版本,所以驱动啊,连接的 url 是这么写的!!!

有了这个配置还不能用,我们还需要有数据库的驱动包

自己去找一下,然后 add to build path

第二步

我们有了这个数据源配置,还不行,我们还需要配置一个 JdbcTemplate,不了我们用啥操作数据库,这个 JdbcTemplate 是 Spring 为我们封装的一个类,我们到时候会用这个去操作数据库。

配置到这里

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

第三步

我们去创建一个 StudentDao、Student 实体

这个实体创建完,自己去对应的数据库创建一下字段

我们这里使用的是 set 注入,当然也可以换成 构造注入,都是可以的。

然后写个方法,插入一个数据。

这里我们写好 SQL,然后创建一个 Object 的数组,数组中的值就是我们上面 SQL 中的占位符。

最后调用 update 即可。传入 SQL,还有占位符的值即可。

第四步

我们写个测试类调用一下~~~

是 OK 的,没有问题,当然哈,我们不止这些~~

四、CRUD

直接上代码了,没有那么多废话

我们上面其实已经说了增加了,这里就不提了。

查询的话,这里有两种,一个是查询单个的,一个是查询多个,但是,他们的结构其实都是一样的。

我使用的是 spring jdbc 自己封装的一个 RowMapper 接口。这个我们可以后期自己封装一个类。里面写的东西是一样的。

来测试一下

修改

修改其实和增加差不多

也是 ok 的

删除

这个也是,和上面的修改、增加都差不多

好了,这一篇就先到这里,先看着,慢慢消化。

各位,还有一件事,我的官网要准备从新制作,有没有什么好的提议,用什么框架,有什么功能,欢迎各位小伙伴提供~~~(直接评论在评论区即可,我到时候会整理起来)

猜你喜欢

转载自blog.csdn.net/weixin_45908370/article/details/115111204