整合JDBC,JdbcTemplate,JPA
当前环境说明:
Windows10_64
Maven3.x
JDK1.8
MySQL5.6
SpringToolSuite4(Spring官方提供的开发工具,实际就是一个Eclipse)
一.整合JDBC
对于数据访问层,无论是SQL(关系型数据库)还是NOSQL(非关系型数据库),Spring Boot底层都是采用Spring Data的方式进行统一处理。 Spring Data也是Spring中与Spring Boot,Spring Cloud等齐名的知名项目。并且Spring Data中内置连接池数据源HikariDataSource,HikariDataSource号称Java WEB当前速度最快的数据源,相比于传统的C3P0、DBCP、Druid、TomcatJDBC等连接池更加优秀;Spring Data允许开发者自主选择数据源。
访问SpringBoot官网,可以查看Spring Data的支持,获取Spring Data启动器依赖。
1.SpringBoot实现JDBC整合
实现JDBC整合,使用SpringData默认连接池数据源
- 新建SpringBoot项目,选择依赖
1 <!-- SpringBoot整合JDBC -->
2 <dependency>
3 <groupId>org.springframework.boot</groupId>
4 <artifactId>spring-boot-starter-jdbc</artifactId>
5 </dependency>
6 <!-- MySQL驱动:默认8.x,如果你使用的MySQL版本较低,且手动切换版本 -->
7 <dependency>
8 <groupId>mysql</groupId>
9 <artifactId>mysql-connector-java</artifactId>
10 <scope>runtime</scope>
11 </dependency>
- 修改yml配置文件,添加数据库链接配置
1 spring:
2 datasource:
3 #根据MySQL版本配置驱动类5.x----8.x 驱动类“com.mysql.jdbc.Driver” 或 “com.mysql.cj.jdbc.Driver”。
4 driver-class-name: com.mysql.cj.jdbc.Driver
5 #useSSL:SSL协议提供服务主要作用:(不建议在没有服务器身份验证的情况下建立SSL连接。)
6 # 1)认证用户服务器,确保数据发送到正确的服务器; .
7 # 2)加密数据,防止数据传输途中被窃取使用;
8 # 3)维护数据完整性,验证数据在传输过程中是否丢失;
9 #serverTimezone:设置时区,不设置会报错。GMT%2B8:东八区北京时间 Asia/Shanghai:上海时间
10 #useServerPrepStmts:在url中给出useServerPrepStmts=true参数,开启预编译(默认PS是关闭的)
11 #allowMultiQueries:设置为true,开启批量执行sql的开关。更多请持续关注博主文档
12 url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
13 username: root
14 password: xsge
- 新建测试类,获取JDBC链接对象和池对象
获取JDBC链接对象后,就可以实现CURD了。
1 @SpringBootTest
2 class SpringbootJdbcApplicationTests {
3 @Autowired
4 DataSource dataSource;// 自动注入链接池数据源对象
5 @Test
6 void contextLoads() throws Exception {
7 Connection connection = dataSource.getConnection();
8 System.out.println("数据源:"+dataSource);
9 System.out.println("链接对象:"+connection);
10 }
11
12 }
- 运行查看控制台结果
1 数据源:HikariDataSource (HikariPool-1)
2 链接对象:HikariProxyConnection@1886247880 wrapping com.mysql.cj.jdbc.ConnectionImpl@fd09e43
就这???都框架整合了,难道以后使用原始JDBC写CURD ?这里主要是介绍Spring Data内部的默认集成数据源,且Spring Data也提供了很多CURD工具支持,例如:JPA,JdbcTemplate等。
二.整合JdbcTemplate
1.概述
在实际项目中,在对数据库访问层对数据库进行操作时,大部分时候我们都用的MyBatis/Hibernate,但是偶尔会有用到使用JDBC的时候,一般使用JDBC的话要么就自己封装一个JDBC连接池进行使用,要么就是使用Apache Common 提供的 DbUtils 工具类,还有个就是Spring JDBC ,提供的JdbcTemplate 工具类。
Spring属于一栈式框架,针对JAVAEE三层中的每一层,都提供了解决技术。在DAO层中Spring中使用JdbcTemplate完成技术需求。(详情请关注后续发表Spring集)
1 JdbcTemplate中常用类介绍:
2 DriverManagerDataSource类:DataSource连接池的实现子类
3 作用:主要是设置连接数据库的相关信息。如:连接地址、用户名、密码等
4 常用方法:
5 setDriverClassName(……):设置驱动类
6 setUsername(……):设置用户名
7 setPassword(……):设置密码
8 setUrl(……):设置连接地址
9 JdbcTemplate类:
10 作用:由Spring提供的JDBC操作模板类。用于完成CURD操作
11 常用构造方法:
12 JdbcTemplate(DataSource dataSource):创建对象并指定连接管理源
13 常用其他方法:
14 update(……):执行增、删、改。返回值为int类型,表示结果影响行数。
15 queryXXX(……);执行查询。更多请关注博主Spring全集案例
2.准备工作
- 创建数据库。
- 新增对应数据库实体类。