网易首页 > 网易号 > 正文 申请入驻

Java开发技术之JDBC驱动的加载注册步骤

0
分享至

加载并注册驱动

加载驱动,把驱动类加载到内存

注册驱动,把驱动类的对象交给DriverManager管理,用于后面创建连接等使用。

1 Driver接口

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

  • MySQL:mysql.jdbc.Driver
  • SQLServer:microsoft.sqlserver.jdbc.SQLServerDriver
  • Oracle:jdbc.driver.OracleDriver

2编写加载与注册驱动的代码

1)直接创建Driver接口的实现类对象

例如:

Driver driver = new com.mysql.jdbc.Driver();

//因为与mysql驱动包中的类发生直接依赖,所以这样可移植性不够好

2)DriverManager 类的 registerDriver()

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

DriverManager 类是驱动程序管理器类,负责管理驱动程序。

通常不用显式调用 DriverManager 类的 registerDriver() 方法来注册驱动程序类的实例。

//DriverManager.registerDriver()方式注册驱动,还是依赖

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

3)Class.forName()或ClassLoader对象.loadClass()

因为 Driver 接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用 DriverManager.registerDriver() 方法来注册自身的一个实例,所以可以换一种方式来加载驱动。(即只要想办法让驱动类的这段静态代码块执行即可注册驱动类,而要让这段静态代码块执行,只要让该类被类加载器加载即可)

调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名

//1、通过反射,加载与注册驱动类,解耦合(不直接依赖)

Class.forName(“com·mysql·jdbc·Driver”);

//2、通过类加载器加载驱动类,解耦合(不直接依赖)

ClassLoader.getSystemClassLoader().loadClass(“com·mysql·jdbc·Driver”);

4)服务提供者框架(例如:JDBC的驱动程序)自动注册(有版本要求)

符合JDBC 4.0规范的驱动程序包含了一个文件META-INF/services/java.sql.Driver,在这个文件中提供了JDBC驱动实现的类名。例如:mysql-connector-java-5.1.40-bin.jar文件中就可以找到java.sql.Driver文件,用文本编辑器打开文件就可以看到:com.mysql.jdbc.Driver类。

JVM的服务提供者框架在启动应用时就会注册服务,例如:MySQL的JDBC驱动就会被注册,而原代码中的Class.forName(“com·mysql·jdbc·Driver”)仍然可以存在,但是不会起作用。

但是注意mysql-connector-java-5.0.8-bin.jar版本的jar中没有,如下

文章转载链接:http://www.atguigu.com/jsfx/9136.html

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
60岁老农上山砍柴,发现5年前失联儿子的汽车,打开车门后愣住了

60岁老农上山砍柴,发现5年前失联儿子的汽车,打开车门后愣住了

千秋文化
2026-07-16 19:54:44
米体:劳塔罗世界杯决赛尚未登场,斯卡洛尼似乎因战术弃用

米体:劳塔罗世界杯决赛尚未登场,斯卡洛尼似乎因战术弃用

懂球帝
2026-07-20 05:24:27
艾滋病全球防线突然溃败:不是病毒变强了,是有钱人不再害怕了

艾滋病全球防线突然溃败:不是病毒变强了,是有钱人不再害怕了

过期少女致幻录
2026-07-14 00:41:11
丰田新车正式上市,14.37万!

丰田新车正式上市,14.37万!

科技堡垒
2026-07-19 11:35:12
专家预测2026年世界杯决赛西班牙对阵阿根廷赛果

专家预测2026年世界杯决赛西班牙对阵阿根廷赛果

画夕
2026-07-19 14:16:07
房山新市郊铁路开通被吐槽是鸡肋,对比自驾公交地铁差距有多大?

房山新市郊铁路开通被吐槽是鸡肋,对比自驾公交地铁差距有多大?

据说说娱乐
2026-07-20 01:39:10
疯狂的6-4!姆巴佩超越梅西,加冕世界杯射手王,最新金靴榜出炉

疯狂的6-4!姆巴佩超越梅西,加冕世界杯射手王,最新金靴榜出炉

球场没跑道
2026-07-19 07:09:06
“国家队”出手!两大央企宣布大规模增持A股

“国家队”出手!两大央企宣布大规模增持A股

新浪财经
2026-07-19 23:07:32
西南地区及长江中下游有较强降雨

西南地区及长江中下游有较强降雨

人民网
2026-07-19 15:40:36
保姆擅自开吃雇主榴莲被说两句,满脸委屈:我以为买来一起吃的!网友炸锅:这自觉性活该被辞!

保姆擅自开吃雇主榴莲被说两句,满脸委屈:我以为买来一起吃的!网友炸锅:这自觉性活该被辞!

一丝不苟的法律人
2026-07-14 12:22:27
昔日首富牟其中服刑十八年,出狱无亲人相伴,唯有小姨子长久守候

昔日首富牟其中服刑十八年,出狱无亲人相伴,唯有小姨子长久守候

磊子讲史
2026-07-06 18:10:46
中国这次没上桌。波兰320公里高铁招标

中国这次没上桌。波兰320公里高铁招标

叶葉夜
2026-07-19 07:59:42
NBA惊现“物理外挂”?状元弗拉格身高暴涨至2米11,本人亲自点赞确认

NBA惊现“物理外挂”?状元弗拉格身高暴涨至2米11,本人亲自点赞确认

林子说事
2026-07-19 18:48:07
一点进步都没有!昔日五星高中生夏联期间在火箭的表现惨不忍睹?

一点进步都没有!昔日五星高中生夏联期间在火箭的表现惨不忍睹?

稻谷与小麦
2026-07-20 02:01:36
前印度队主帅:梅西不是史上最佳,阿根廷靠全队给他擦屁股

前印度队主帅:梅西不是史上最佳,阿根廷靠全队给他擦屁股

篮坛第一线
2026-07-20 02:10:20
官宣!文班亚马联手戈贝尔!首秀大战约基奇

官宣!文班亚马联手戈贝尔!首秀大战约基奇

篮球教学论坛
2026-07-19 20:39:03
红线刚划下就被突破,伊朗导弹砸向沙特,巴基斯坦面临两难抉择

红线刚划下就被突破,伊朗导弹砸向沙特,巴基斯坦面临两难抉择

近史博览
2026-07-20 00:35:59
40℃高温120码连开3小时,油车随便造 电车扛不扛得住?实测说真话

40℃高温120码连开3小时,油车随便造 电车扛不扛得住?实测说真话

阿芒娱乐说
2026-07-19 04:28:48
陈皮巧搭四种家常水!从夏喝到三伏,祛湿养肺全身更舒坦

陈皮巧搭四种家常水!从夏喝到三伏,祛湿养肺全身更舒坦

白米饭怎么吃
2026-07-16 10:30:53
北京某退休人员养老金曝光:工龄38.19年,个人账户223651元

北京某退休人员养老金曝光:工龄38.19年,个人账户223651元

起喜电影
2026-07-20 00:54:43
2026-07-20 06:03:00
IT爱好者小尚
IT爱好者小尚
分享IT教育类信息
630文章数 55关注度
往期回顾 全部

科技要闻

Kimi K3单项登顶 整体落后前沿模型2-3个月

头条要闻

网友称草原有人驱赶分食马匹尸体的秃鹫 官方回应

头条要闻

网友称草原有人驱赶分食马匹尸体的秃鹫 官方回应

体育要闻

世界杯决赛,从“澡盆德比”500年前讲起

娱乐要闻

王侃因病逝世 两年前与父亲牛犇同台

财经要闻

任泽平VIP会员自称爆仓巨亏千万

汽车要闻

被追尾还能自动加速逃生?华为乾崑智驾ADS 5.0 OTA时间表发布,只有这台车不用等!

态度原创

艺术
教育
家居
手机
亲子

艺术要闻

张大千:千万别学郑板桥题字

教育要闻

2026年高考“超级爆冷”:985大学仅549分,211跌到413分,全国罕见!

家居要闻

2026建博会(广州) 公装联探展交流活动

手机要闻

小米18入网,Pro系列先发!

亲子要闻

专家:家长应关注儿童乙肝表面抗体水平变化,必要时加强接种

无障碍浏览 进入关怀版