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 ...
随机推荐
- flask 基础2
一.装饰器的坑 在使用装饰器函数时候,当一个装饰器装饰多个函数的时候,会由于内存地址相同时发生报错,因为装饰的都是一个函数 所以就需要引入 import functools 重新定义每一个函数的名称 ...
- 201871010128-杨丽霞《面向对象程序设计(java)》第十六周学习总结
201871010128-杨丽霞<面向对象程序设计(java)>第十六周学习总结(1分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-dai ...
- C++17尝鲜
https://cloud.tencent.com/developer/article/1351910 [译]C++17,optional, any, 和 variant 的更多细节 用户261520 ...
- 跑批 - Spring Batch 批处理使用记录
根据spring官网文档提供的spring batch的demo进行小的测验 启动类与原springboot启动类无异 package com.example.batchprocessing; imp ...
- Linux性能优化实战学习笔记:第五十二讲
一.上节回顾 上一节,我们一起学习了怎么使用动态追踪来观察应用程序和内核的行为.先简单来回顾一下.所谓动态追踪,就是在系统或者应用程序还在正常运行的时候,通过内核中提供的探针,来动态追踪它们的行为,从 ...
- Scala Symbol解释
Symbol This class provides a simple way to get unique objects for equal strings. Since symbols are i ...
- 多线程避免使用SimpleDateFormat及替代方案
先来看一个多线程下使用例子,看到运行结果会出现异常: import java.text.DateFormat; import java.text.SimpleDateFormat; import ja ...
- docker搭建php环境
前言 本文根据参考文章,自己动手试了搭建PHP环境,对里面的Dockerfile的编写 做了最新的修改,以此记录,完整代码查看传送门 说明: 镜像下载过慢,可使用国内镜像加速,具体可自行查询 根据此方 ...
- Loj #3042. 「ZJOI2019」麻将
Loj #3042. 「ZJOI2019」麻将 题目描述 九条可怜是一个热爱打麻将的女孩子.因此她出了一道和麻将相关的题目,希望这题不会让你对麻将的热爱消失殆尽. 今天,可怜想要打麻将,但是她的朋友们 ...
- python 属性描述符
import numbers class IntField: # 一个类只要实现了这个魔法函数,那么它就是属性描述符 #数据描述符 def __get__(self, instance, owner) ...