JDBC驱动新手教程

一、 URL

JDBC的URL=协议名+子协议名+数据源名。

  1. 协议名总是“jdbc”。
  2. 子协议名由JDBC驱动程序的编写者决定。
  3. 数据源名也可能包含用户与口令等信息;这些信息也可单独提供。

二、MySQL

驱动:com.mysql.jdbc.Driver
URL:jdbc:mysql://machine_name:port/dbname
注:machine_name:数据库所在的机器的名称; port:端口号,默认3306

三、新旧版本写法对比

1.旧版本,MySQL Connector/J 5.x 版本的连接方式:

url = jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf-8
driver = com.mysql.jdbc.Driver

2、MySQL 8.x新版本,MySQL Connector/J 6.x之后 的连接方式:

url = jdbc:mysql://localhost:3306/user?serverTimezone=UTC&characterEncoding=utf-8&useUnicode=true&useSSL=false
drive = com.mysql.cj.jdbc.Driver

注意:新版mysql驱动的url必须设置时区,即serverTimezone=UTC
useUnicode 是否使用Unicode字符集,如果参数characterEncoding设置为utf-8,本参数值必须设置为true
serverTimezone=UTC 设置数据库时区为统一标准标准世界时间
useSSL 是否进行SSL连接高版本设置useSSL=true,不然会有警告信息

四、常见错误提示

常见错误提示1:
以上配置中,url中如果driver没有添加cj,则会在连接的时候出现以下错误提示:

Loading class com.mysql.jdbc.Driver’. This is deprecated. The new
driver class is com.mysql.cj.jdbc.Driver’. The driver is automatically
registered via the SPI and manual loading of the driver class is
generally unnecessary.

根据提示,很显然,这种driver配置方式在此版本中已经被废弃,因此需要将driverClass配置为:com.mysql.cj.jdbc.Driver。
常见错误提示2:
以上配置中,url中如果没有设置useSSL=false,则会在连接的时候出现以下错误提示:

1 WARN: Establishing SSL connection without server’s identity
verification is not recommended. According to MySQL 5.5.45+, 5.6.26+
and 5.7.6+ requirements SSL connection must be established by default
if explicit option isn’t set. For compliance with existing
applications not using SSL the verifyServerCertificate property is set
to ‘false’.You need either to explicitly disable SSL by setting
useSSL=false, or set useSSL=true and provide truststore for server
certificate verification.

常见错误提示3:
以上配置中,url中如果没有设置serverTimezone=UTC,则会在连接的时候出现以下错误提示:

The server time zone value ‘???ú±ê×??±??’ is unrecognized or
represents more than one time zone. You must configure either the
server or JDBC driver (via the serverTimezone configuration property)
to use a more specifc time zone value if you want to utilize time zone
support.

代码:

package utils;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBUtils {
public final static String DRIVER="com.mysql.jdbc.Driver";
public final static String URL="jdbc:mysql://localhost:3306/shujukuDB?useUnicode=true&characterEncoding=utf-8";
public final static String USER="";
public final static  String PASSWORD="";
public static Connection getConnection(){
Connection conn=null;
try{
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,USER,PASSWORD);
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public static void closeDB(Connection conn) {

 if (conn != null) {
try {
 conn.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 }

public static void main(String[] args) {
DBUtils.getConnection();

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值