一、回顾 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)
然后往下翻,我们看一个东西
就这个东西。
三、写个栗子
我们创建一个项目。把之前的 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 的
删除
这个也是,和上面的修改、增加都差不多
好了,这一篇就先到这里,先看着,慢慢消化。
各位,还有一件事,我的官网要准备从新制作,有没有什么好的提议,用什么框架,有什么功能,欢迎各位小伙伴提供~~~(直接评论在评论区即可,我到时候会整理起来)