SpringBoot入门到精通(四):整合JDBC和JPA

2023-11-10

整合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默认连接池数据源

  1. 新建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>
    
  2. 修改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
    
  3. 新建测试类,获取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 }
    
  4. 运行查看控制台结果
    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.准备工作

  1. 创建数据库。
  2. 新增对应数据库实体类。
    1 @Data
    2 @AllArgsConst
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot入门到精通(四):整合JDBC和JPA 的相关文章

随机推荐