JDBC注册驱动程序3种方式
以MySQL的驱动为例,介绍注册驱动程序的3种方式
1:Class.forName("com.mysql.cj.jdbc.Driver");// 加载数据库驱动
package com.pine.interview.jdbc; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class Driver1 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");// 加载数据库驱动
String url = "jdbc:mysql://localhost:3306/pine?serverTimezone=UTC";// 数据库连接子协议
Connection conn = DriverManager.getConnection(url, "root", "root");
System.out.println(conn);
conn.close();
}
}
2:System.setProperty("jdbc.drivers","com.mysql.cj.jdbc.Driver");// 加载数据库驱动
package com.pine.interview.jdbc; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class Driver2 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
System.setProperty("jdbc.drivers","com.mysql.cj.jdbc.Driver");// 加载数据库驱动
String url = "jdbc:mysql://localhost:3306/pine?serverTimezone=UTC";// 数据库连接子协议
Connection conn = DriverManager.getConnection(url, "root", "root");
System.out.println(conn);
conn.close();
/**
* 可以同时导入多个jdbc驱动,中间用冒号“:”分开
比如System.setProperty("jdbc.drivers","XXXDriver:XXXDriver:XXXDriver");
*/
}
}
3:new com.mysql.cj.jdbc.Driver();// 加载数据库驱动
package com.pine.interview.jdbc; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class Driver3 {
public static void main(String[] args) throws SQLException {
new com.mysql.cj.jdbc.Driver();// 加载数据库驱动
String url = "jdbc:mysql://localhost:3306/pine?serverTimezone=UTC";// 数据库连接子协议
Connection conn = DriverManager.getConnection(url, "root", "root");
System.out.println(conn);
conn.close();
}
}
推荐使用方法1、方法2,其中方法2可以一次性注册多个驱动
不推荐使用方法3,因为编译时会依赖mysql的驱动包,而且静态代码块中会进行驱动的注册,new 出来的 Driver的实例是多余无用的
如下图所示:

JDBC注册驱动程序3种方式的更多相关文章
- JDBC注册驱动程序的三种方式
1. Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动 Class.forName("com.mysql.jdbc.Dri ...
- JDBC连接数据库的四种方式:DriverManager,DataSource,DBCP,C3P0
方法1:使用java.sql.DriverManager类 驱动管理器类,用于管理所有注册的驱动程序. (注:DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供了连接到数据源 ...
- Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查
前言 java连接数据库完整流程为: 1,获得驱动(driver),数据库连接(url),用户名(username),密码(password)基本信息的三种方式. 2,通过获得的信息完成JDBC实现连 ...
- JDBC基础篇(MYSQL)——通过JDBC连接数据库的三种方式
package day01_jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManage ...
- spring boot集成 servlet自动注册的两种方式
有两种方式:(两种方式同时存在时,@Bean优先@ServletComponentScan实例化,生成两个对象) 1)通过@ServletComponentScan类注解 扫描 带有@WebServl ...
- 注册jdbc驱动的三种方式
java.sql.DriverManger类简介 java的驱动管理类.管理一组 JDBC 驱动程序. javax.sql.DataSource 接口是 JDBC 2.0 API 中的新增内容,它 ...
- Oracle的JDBC Url的几种方式
1.普通SID方式jdbc:oracle:thin:username/password@x.x.x.1:1521:SID2.普通ServerName方式 jdbc:Oracle:thin:userna ...
- laravel扩展包服务提供者的注册的两种方式
一. 包自动发现 在 Laravel 应用的配置文件 config/app.php 中,providers 配置项定义了一个会被 Laravel 加载的服务提供者列表.当安装完新的扩展包后,在老版本中 ...
- JDBC的批处理操作三种方式 pstmt.addBatch()
package lavasoft.jdbctest; import lavasoft.common.DBToolkit; import java.sql.Connection; import java ...
随机推荐
- jmeter压测学习5-XPath提取器
前言 有些web项目是前后端不分离的,返回的内容不是那种纯进口返回json格式,返回的是一个HTML页面. 并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数,如:csrfmidd ...
- day23_7.29 多态和类的内置方法
一.多态 在现实生活中,多态也会体现.如对于水这种物质,有固态:冰,液态:常态,气态:水蒸气, 在程序中,其官方定义是:多个不同对象可以相应同一方法,产生不同的结果. 而在python中,多态不是一个 ...
- 一种css效果:标题带色块,React+Less
.title { display: inline-block; font-size: 15px; font-weight: bold; position: relative; padding: 5px ...
- SQL中group by的注意事项
最最最最重要的: group by有一个原则,就是select后面所有的列中,没有使用聚合函数的列,必须出现在group by子句中. group by子句中的注意事项: 1,不能使用别名(因为执行顺 ...
- requests--请求头设置
前戏 在我们进行自动化测试的时候,很多网站都会都请求头做个校验,比如验证 User-Agent,看是不是浏览器发送的请求,如果我们不加请求头,使用脚本访问,默认User-Agent是python,这样 ...
- 洛谷p3385【模板】负环
最近很久没怎么写最短路的题导致这个题交了好多遍 AC率是怎么下来的自己心里没点数 SPFA虽然臭名昭著但是他可以用来判负环 如果一个点进队的次数大于等于n说明存在负环 这道题一开始memset我给di ...
- A1038 Recover the Smallest Number (30 分)
一.技术总结 此问题是贪心类问题,给出可能有前导零的数字串,将他们按照某个顺序拼接,使生成的数最小. 解决方案,就是使用cmp函数,因为两两字符串进行拼接,进行排序从小到大. 拼接过后会有0可能出现在 ...
- [LeetCode] 85. Maximal Rectangle 最大矩形
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and ...
- [LeetCode] 684. Redundant Connection 冗余的连接
In this problem, a tree is an undirected graph that is connected and has no cycles. The given input ...
- vue-lazyload 图片懒加载
vue-lazyload简单使用 github地址:https://github.com/hilongjw/vue-lazyload 1.安装插件 npm install vue-lazyload - ...