查看“获取数据库连接的方式一”的源代码
←
获取数据库连接的方式一
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
https://www.bilibili.com/video/BV1eJ411c7rf?p=7 === 要素一:Driver接口实现类 === ==== Driver接口介绍 ==== *java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。 *在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些 Driver 实现。 **Oracle的驱动:oracle.jdbc.driver.OracleDriver **MySQL的驱动:com.mysql.jdbc.Driver(之前的旧版本) 或 com.mysql.cj.jdbc.Driver(MySQL Server 8.0、5.7) 引入 jar 包<syntaxhighlight lang="xml"> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.30</version> </dependency> </syntaxhighlight> ====加载与注册JDBC驱动==== *加载驱动:加载 JDBC 驱动需调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名 **<syntaxhighlight lang="java"> Class.forName("com.mysql.cj.jdbc.Driver"); </syntaxhighlight> *注册驱动:DriverManager 类是驱动程序管理器类,负责管理驱动程序 **使用 DriverManager.registerDriver(com.mysql.cj.jdbc.Driver)来注册驱动 **通常不用显式调用 Driver 类的 registerDriver() 方法来注册驱动程序类的实现,因为 Driver 接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用 DriverManager.registerDriver() 方法来注册自身的一个实例。下面是MySQL的Driver实现类的源码:<syntaxhighlight lang="java"> public class Driver extends NonRegisteringDriver implements java.sql.Driver { // // Register ourselves with the DriverManager // static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException("Can't register driver!"); } } </syntaxhighlight> ===要素二:URL=== *JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。 *JDBC URL 的标准由三部分组成,各部分间用冒号分隔。 **jdbc:子协议:子名称 **协议:JDBC URL 中的协议总是 jdbc **子协议:子协议用于标识一个数据库驱动程序 **子名称:一种标识数据库的方法,子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息。包含主机名(对应服务端的 IP 地址),端口号,数据库名 *举例:[[文件:获取数据库连接 1.png|无|缩略图]] *集中常见数据库的 JDBC URL **MySQL 的连接 URL 编写方式: ***jdbc:mysql://主机名称:mysql服务端口号/数据库名称?参数=值&参数=值 ***jdbc:mysql://localhost:3306/guns *** 官方给的示例的URL 一般在 docs、readme 之类的文本文件里,或者去官网的示例里找 https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-examples.html <syntaxhighlight lang="java"> import org.junit.Test; import java.sql.Connection; import java.sql.Driver; import java.sql.SQLException; import java.util.Properties; public class ConnectionTest { @Test public void testConnection1() throws SQLException { Driver driver = new com.mysql.cj.jdbc.Driver(); /* * jdbc:mysql 协议 * localhost ip地址 * 3306 端口号 * guns guns数据库 * */ String url = "jdbc:mysql://localhost:3306/guns"; //将用户名和密码封装到 Properties 中 Properties info = new Properties(); info.setProperty("user", "root"); info.setProperty("password", "123456"); Connection conn = driver.connect(url, info); System.out.println(conn); } } </syntaxhighlight><syntaxhighlight lang="console"> com.mysql.cj.jdbc.ConnectionImpl@4278a03f </syntaxhighlight>https://github.com/jihch/jdbc/blob/main/src/main/java/io/github/jihch/connection/ConnectionTest.java
返回至
获取数据库连接的方式一
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息