Spring及Spring boot java程序访问数据库 JDBC Driver接口及Driver实现类

java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。

在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现。

接口 java.sql.Drive

在这里插入图片描述
在这里插入图片描述

com.mysql.cj.jdbc.Driver到底有什么用?

在我们编写JDBC以及之后的ORM框架中我们都会定义这四个Property,那么 com.mysql.cj.jdbc.Driver的背后含义是什么呢?
以JDBC为例
在这里插入图片描述

通过Class.forName找到我们定义的Driver然后调用DriverManager的注册方法

在这里插入图片描述

可以看出,通过执行 Class.forName(“com.mysql.cj.jdbc.Driver”)找到了类路径并加载、链接、初始化
为什么说 Class.forName执行到类的初始化阶段,因为初始化阶段会执行到以下 Java 代码场景。
(1)读取或设置一个类的静态字段(被final修饰、已在编译器把结果放入常量池的静态字段除外)的时候以及调用一个类的静态方法的时候。可以看到我们这里正是通过调用 Class.forName找到了com.mysql.cj.jdbc下的Driver类,并调用它的静态语句块
在这里插入图片描述
对于类加载的过程可以参考以下链接,Driver向DriverManager注册的过程是Class,forName()使用的经典场景,它会让你理解
第 7 章 虚拟机类加载机制

DriverManager注册Drive

在这里插入图片描述
过程参考
Spring及Spring boot 第四章-第一节 java程序访问数据库 JDBC DriverManager

拓展

mysql Driver接口实现类 NonRegisteringDriver

NonRegisteringDriver mysql Driver驱动

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,可以通过使用Spring Data JPA或者MyBatis等框架来实现数据库访问。这里以Spring Data JPA为例,步骤如下: 1. 配置数据源:在application.properties或application.yml中配置数据源信息。 2. 创建实体:创建Java,用于映射数据库中的表结构。 3. 创建Repository接口:创建一个接口,继承JpaRepository接口,用于操作数据库。 4. 使用Repository:在Service或Controller中注入Repository,调用其方法进行数据库操作。 下面是一个简单的示例代码: 1. 配置数据源 在application.properties文件中添加以下内容: ``` spring.datasource.url=jdbc:mysql://localhost:3306/testdb spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 2. 创建实体 ``` @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Integer age; // 省略getter和setter方法 } ``` 3. 创建Repository接口 ``` public interface UserRepository extends JpaRepository<User, Long> { User findByName(String name); } ``` 4. 使用Repository ``` @Service public class UserService { @Autowired private UserRepository userRepository; public User getUserByName(String name) { return userRepository.findByName(name); } } ``` 上述代码中,我们定义了一个UserService,其中注入了UserRepository,并提供了根据名称查询用户的方法getUserByName。在Controller中调用该方法即可实现数据库访问

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值