以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种方式的更多相关文章

  1. JDBC注册驱动程序的三种方式

    1. Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动 Class.forName("com.mysql.jdbc.Dri ...

  2. JDBC连接数据库的四种方式:DriverManager,DataSource,DBCP,C3P0

    方法1:使用java.sql.DriverManager类 驱动管理器类,用于管理所有注册的驱动程序. (注:DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供了连接到数据源 ...

  3. Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查

    前言 java连接数据库完整流程为: 1,获得驱动(driver),数据库连接(url),用户名(username),密码(password)基本信息的三种方式. 2,通过获得的信息完成JDBC实现连 ...

  4. JDBC基础篇(MYSQL)——通过JDBC连接数据库的三种方式

    package day01_jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManage ...

  5. spring boot集成 servlet自动注册的两种方式

    有两种方式:(两种方式同时存在时,@Bean优先@ServletComponentScan实例化,生成两个对象) 1)通过@ServletComponentScan类注解 扫描 带有@WebServl ...

  6. 注册jdbc驱动的三种方式

    java.sql.DriverManger类简介   java的驱动管理类.管理一组 JDBC 驱动程序. javax.sql.DataSource 接口是 JDBC 2.0 API 中的新增内容,它 ...

  7. Oracle的JDBC Url的几种方式

    1.普通SID方式jdbc:oracle:thin:username/password@x.x.x.1:1521:SID2.普通ServerName方式 jdbc:Oracle:thin:userna ...

  8. laravel扩展包服务提供者的注册的两种方式

    一. 包自动发现 在 Laravel 应用的配置文件 config/app.php 中,providers 配置项定义了一个会被 Laravel 加载的服务提供者列表.当安装完新的扩展包后,在老版本中 ...

  9. JDBC的批处理操作三种方式 pstmt.addBatch()

    package lavasoft.jdbctest; import lavasoft.common.DBToolkit; import java.sql.Connection; import java ...

随机推荐

  1. conan使用(五)--打包chromium-base

    现在我们就利用之前学习到的conan的使用方法,将chromium中的base库打包成一个conan包. 1. 准备源码 chromium本身是通过gn来编译的,这个目前conan并不支持.所以需要把 ...

  2. 201871010107-公海瑜《面向对象程序设计(java)》第十四周学习总结

    201871010107-公海瑜<面向对象程序设计(java)>第十四周学习总结             项目                            内容   这个作业属于 ...

  3. 莫烦RL-01小例子

    # Python 3.6.5 :: Anaconda, Inc. import numpy as np import pandas as pd import time np.random.seed(2 ...

  4. MyBatis Plus 将查询结果封装到指定实体

    MyBatis Plus 将查询结果封装到指定实体 思路 自定义方法,使用Wrapper,自定义映射结果集 Mapper接口 package com.mozq.boot.mpsand01.dao; i ...

  5. postgres判断字符串是否为时间,数字

    时间判断函数定义: -- FUNCTION: public.isdate(character varying) -- DROP FUNCTION public.isdate(character var ...

  6. NLP之分词

    不同分词工具原理解析 对各种分词工具的介绍,具体参考: http://www.cnblogs.com/en-heng/p/6234006.html 1) jieba 具体参考: https://blo ...

  7. Web协议详解与抓包实战:HTTP1协议-详解请求行(2)

    一.请求行一 二.请求行二 三.请求行三 四.常见方法(RFC7231) 实际测试截图 五.用于文档管理的 WEBDAV 方法(RFC2518) 六.WEBDAV 验证环境  1.登录  2.Wire ...

  8. [LeetCode] 730. Count Different Palindromic Subsequences 计数不同的回文子序列的个数

    Given a string S, find the number of different non-empty palindromic subsequences in S, and return t ...

  9. [LeetCode] 370. Range Addition 范围相加

    Assume you have an array of length n initialized with all 0's and are given k update operations. Eac ...

  10. Vue.js+vue-element

    Vue.js+vue-element搭建属于自己的后台管理模板:什么是Vue.js?(一)   Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js是什么?(一) 前言 本教程 ...