欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用JDBC連接Mysql數(shù)據(jù)庫會(huì)出現(xiàn)的問題總結(jié)

 更新時(shí)間:2018年10月10日 09:16:16   作者:Dmego  
這篇文章主要給大家介紹了關(guān)于使用JDBC連接Mysql數(shù)據(jù)庫會(huì)出現(xiàn)的問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

首先理清幾個(gè)概念:

  • JDBC:java數(shù)據(jù)庫連接,是Orical公司的指定的一套規(guī)范接口
  • java數(shù)據(jù)庫驅(qū)動(dòng):JDBC的實(shí)現(xiàn)類,由相應(yīng)的數(shù)據(jù)庫廠商提供,可以通過驅(qū)動(dòng)去操作不同的數(shù)據(jù)庫
  • 在java-數(shù)據(jù)庫這里,jdbc-api中的所有包都是java.sql或者javax.sql

JDBC的操作步驟:

 (1)建立數(shù)據(jù)庫和表

 (2)創(chuàng)建項(xiàng)目

 (3)導(dǎo)入驅(qū)動(dòng)jar包

 (4)注冊(cè)驅(qū)動(dòng)

  Class.forName("com.mysql.jdbc.Driver");

 (5)獲取連接

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:端口號(hào)/項(xiàng)目名", "登錄名", "密碼");

前言

最近安裝了一個(gè) mysql 8.0 版本的數(shù)據(jù)庫,在程序中連接的時(shí)候可謂是狀況不斷。之前也會(huì)遇到一些問題,這里就對(duì)使用 JDBC 連接mysql 會(huì)出現(xiàn)的問題做一個(gè)匯總。

在此之前說明一下環(huán)境:

  • 開發(fā)工具:IDEA
  • mysql版本: 8.0.12 for Win64 on x86_64 (MySQL Community Server - GPL)
  • mysql驅(qū)動(dòng)包:8.0.12

驅(qū)動(dòng)包URL 的改變

異常信息

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.

原因

通過異常我們可以發(fā)現(xiàn),新的驅(qū)動(dòng)url是com.mysql.cj.jdbc.Driver,經(jīng)過在網(wǎng)上查閱資料發(fā)現(xiàn),從 mysql6開始,驅(qū)動(dòng)包開始使用新的驅(qū)動(dòng) url。如果使用舊的 5.0 版本的驅(qū)動(dòng)包,則不用驅(qū)動(dòng)URL,但是如果使用舊的驅(qū)動(dòng)可能會(huì)出現(xiàn)一些意想不到的問題。所以還是建議將驅(qū)動(dòng)包升級(jí),然后改變 驅(qū)動(dòng) URL 的值。

解決方法

將驅(qū)動(dòng) URL 由com.mysql.jdbc.Driver 換成 com.mysql.cj.jdbc.Driver

SSL 警告

警告信息

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.

原因

對(duì)警告信息翻譯如下。

不建議在沒有服務(wù)器身份驗(yàn)證的情況下建立SSL連接。根據(jù)MySQL 5.5.45+,如果未設(shè)置顯式選項(xiàng),則默認(rèn)情況下必須建立5.6.26+和5.7.6+要求的SSL連接。對(duì)于不使用SSL的現(xiàn)有應(yīng)用程序,ValuyServer證書屬性設(shè)置為“false”。您需要通過設(shè)置useSSL=false來顯式禁用SSL,或者設(shè)置useSSL=true并提供用于服務(wù)器證書驗(yàn)證的信任庫`。

解決方法

一般在開發(fā)中基本不需要使用 SSL 連接,在連接字符串后添加useSSL=false參數(shù)就行。但是如果真的有 SSL 連接的需要,則在驅(qū)動(dòng) URL 后添加useSSL=true參數(shù)。

jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8&useSSL=false

時(shí)區(qū)問題

異常信息

java.sql.SQLException: 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.

原因

同樣也是由于版本升級(jí)后,新的版本數(shù)據(jù)庫和系統(tǒng)之間有了時(shí)區(qū)差異,需要指定時(shí)區(qū)serverTimezone

解決方法

連接字符串后添加參數(shù)&serverTimezone=GMT%2B8,最終連接字符串如下:

jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8

修改數(shù)據(jù)庫時(shí)間。先通過命令行連上數(shù)據(jù)庫,依次輸入命令及其輸出如下

mysql> show variables like "%time_zone";
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone |  |
| time_zone  | SYSTEM |
+------------------+--------+
2 rows in set, 1 warning (0.04 sec)

mysql> set global time_zone="+8:00";
Query OK, 0 rows affected (0.01 sec)

XML 配置文件中 & 的轉(zhuǎn)義

異常信息

org.mybatis.generator.exception.XMLParserException: XML Parser Error on line 16: 對(duì)實(shí)體 “useSSL” 的引用必須以 ‘;' 分隔符結(jié)尾。

原因

這是我在使用mybatis generator時(shí)出現(xiàn)的錯(cuò)誤。當(dāng)時(shí)我想在連接字符串后加上useSSL參數(shù),但是由于在 XML 文件中,&是被禁止的,所以需要使用 &的時(shí)要用它的轉(zhuǎn)義&來代替。

解決方法

將連接字符串中的 &符號(hào)改成&

詳細(xì)連接字符串參考

jdbc:mysql://127.0.0.1:3306/dbname?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&serverTimezone=GMT%2B8&verifyServerCertificate=false&autoReconnct=true&autoReconnectForPools=true&allowMultiQueries=true

當(dāng)然如果是使用 XML 作為配置文件,需要將 連接字符串中的 &符號(hào)改成&

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • MySQL深入詳解delete與Truncate及drop的使用區(qū)別

    MySQL深入詳解delete與Truncate及drop的使用區(qū)別

    對(duì)于drop、truncate和delete雖然簡單,但是真要使用或者面試時(shí)候問到還是需要有一定的總結(jié),下面這篇文章主要給大家介紹了關(guān)于mysql中drop、truncate與delete區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • MySQL主從配置及haproxy和keepalived搭建過程解析

    MySQL主從配置及haproxy和keepalived搭建過程解析

    這篇文章主要介紹了MySQL主從配置及haproxy和keepalived搭建,本次運(yùn)行環(huán)境是在docker中,也會(huì)介紹一些docker的知識(shí),需要的朋友可以參考下
    2022-05-05
  • MySQL存儲(chǔ)過程中使用動(dòng)態(tài)行轉(zhuǎn)列

    MySQL存儲(chǔ)過程中使用動(dòng)態(tài)行轉(zhuǎn)列

    這篇文章主要為大家介紹了MySQL存儲(chǔ)過程中使用動(dòng)態(tài)行轉(zhuǎn)列的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • MySQL之批量插入的4種方案總結(jié)

    MySQL之批量插入的4種方案總結(jié)

    這篇文章主要介紹了MySQL之批量插入的4種方案總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Mysql深入探索之Explain執(zhí)行計(jì)劃詳析

    Mysql深入探索之Explain執(zhí)行計(jì)劃詳析

    這篇文章主要給大家介紹了關(guān)于Mysql深入探索之Explain執(zhí)行計(jì)劃的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • MYSQL的binary解決mysql數(shù)據(jù)大小寫敏感問題的方法

    MYSQL的binary解決mysql數(shù)據(jù)大小寫敏感問題的方法

    BINARY不是函數(shù),是類型轉(zhuǎn)換運(yùn)算符,它用來強(qiáng)制它后面的字符串為一個(gè)二進(jìn)制字符串,可以理解為在字符串比較的時(shí)候區(qū)分大小寫
    2013-09-09
  • MySQL自動(dòng)填充create_time和update_time的兩種方式

    MySQL自動(dòng)填充create_time和update_time的兩種方式

    當(dāng)我們創(chuàng)建業(yè)務(wù)表的時(shí)候 通常都需要設(shè)置create_time 和 update_time,下面這篇文章主要給大家介紹了關(guān)于MySQL自動(dòng)填充createTime和updateTime的兩種方式,需要的朋友可以參考下
    2022-05-05
  • 詳解MySQL Workbench使用教程

    詳解MySQL Workbench使用教程

    這篇文章主要介紹了詳解MySQL Workbench使用教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • mysql 開放外網(wǎng)訪問權(quán)限的方法

    mysql 開放外網(wǎng)訪問權(quán)限的方法

    今天小編就為大家分享一篇mysql 開放外網(wǎng)訪問權(quán)限的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • MySQL的意向共享鎖、意向排它鎖和死鎖

    MySQL的意向共享鎖、意向排它鎖和死鎖

    這篇文章主要介紹了MySQL的意向共享鎖、意向排它鎖和死鎖,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07

最新評(píng)論