亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將Java連接到MySQL數據庫

將Java連接到MySQL數據庫

肥皂起泡泡 2019-05-23 13:12:10
將Java連接到MySQL數據庫你如何用Java連接到MySQL數據庫?當我嘗試時,我明白了java.sql.SQLException: No suitable driver found for jdbc:mysql://database/table     at java.sql.DriverManager.getConnection(DriverManager.java:689)     at java.sql.DriverManager.getConnection(DriverManager.java:247)要么java.lang.ClassNotFoundException: com.mysql.jdbc.Driver要么java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
查看完整描述

3 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

這是一步一步解釋如何安裝MySQL和JDBC以及如何使用它:

  1. 下載并安裝MySQL服務器。按照通常的方式做到這一點。無論何時更改端口號,請記住端口號。這是默認情況3306。

  2. 下載 JDBC驅動程序并放入類路徑,解壓縮ZIP文件并將包含的JAR文件放在類路徑中。特定于供應商的JDBC驅動程序是 JDBC API的具體實現(此處為教程)。

    如果您使用的是Eclipse或Netbeans之類的IDE,則可以通過將JAR文件作為添加到項目屬性中的構建路徑來將其添加到類路徑中。

    如果您在命令控制臺中執行“普通的vanilla”,則需要在執行Java應用程序時在-cp-classpath參數中指定JAR文件的路徑。

    java -cp .; / path / to / mysql-connector.jar com.example.YourClass

    .是就在那里給添加當前目錄到類路徑中,以便它可以找到com.example.YourClass;是類路徑分隔符,因為它是在Windows中。在Unix中,:應該使用克隆。

  3. 在MySQL中創建一個數據庫。我們來創建一個數據庫javabase。你當然想要世界統治,所以讓我們也使用UTF-8。

    CREATE DATABASE javabase DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
  4. 為Java 創建用戶授予其訪問權限。僅僅因為使用root是一種不好的做法。

    CREATE USER 'java'@'localhost' IDENTIFIED BY 'password';GRANT ALL ON javabase.* TO 'java'@'localhost' IDENTIFIED BY 'password';

    是的,java是用戶名,password是這里的密碼。

  5. 確定 JDBC URL。要使用Java連接MySQL數據庫,您需要使用以下語法的JDBC URL:

    JDBC:MySQL的://主機名:端口/數據庫名稱

    所以最終的URL應如下所示:

    JDBC:MySQL的://本地主機:3306 / javabase
    • hostname:安裝MySQL服務器的主機名。如果它安裝在您運行Java代碼的同一臺機器上,那么您可以使用它localhost。它也可以是一個IP地址127.0.0.1。如果您遇到連接問題并使用127.0.0.1而不是localhost解決它,那么您的網絡/ DNS /主機配置中存在問題。

    • port:MySQL服務器偵聽的TCP / IP端口。這是默認情況3306。

    • databasename:您要連接的數據庫的名稱。那是javabase

  6. 使用Java 測試與 MySQL 的連接。使用main()測試連接的方法創建一個簡單的Java類。

    String url = "jdbc:mysql://localhost:3306/javabase";String username = "java";String password = "password";System.out.println
    ("Connecting database...");try (Connection connection = DriverManager.getConnection(url, username, password)) {
        System.out.println("Database connected!");} catch (SQLException e) {
        throw new IllegalStateException("Cannot connect the database!", e);}

    如果你得到了SQLException: No suitable driver,那么這意味著JDBC驅動程序根本沒有自動加載,或者JDBC URL錯誤(即任何加載的驅動程序都無法識別它)。通常,當您將JDBC 4.0驅動程序放在運行時類路徑中時,應該自動加載它。要排除其中一個,您可以隨時手動加載它,如下所示:

    System.out.println("Loading driver...");try {
        Class.forName("com.mysql.jdbc.Driver");
        System.out.println("Driver loaded!");} catch (ClassNotFoundException e) {
        throw new IllegalStateException("Cannot find the driver in the classpath!", e);}

    需要注意的是,newInstance()在呼叫在這里需要。它只是修復舊的和馬車org.gjt.mm.mysql.Driver。這里解釋。如果此行拋出ClassNotFoundException,則包含JDBC驅動程序類的JAR文件根本沒有放在類路徑中。

    請注意,您不需要連接之前每次都 加載驅動程序。在應用程序啟動期間只需一次即可。

    如果您獲得SQLException: Connection refusedConnection timed out特定于MySQL CommunicationsException: Communications link failure,則意味著DB根本無法訪問。這可能有以下一個或多個原因:

    要解決這個問題,請遵循以下建議:

    請注意,關閉Connection非常重要。如果您沒有關閉連接并在短時間內繼續獲取大量連接,那么數據庫可能會用完連接而您的應用程序可能會中斷。始終Connectiontry-with-resources聲明中獲得?;蛘?,如果你對Java 7的是沒有,明確地關閉它在finally一個的try-finally塊。關閉finally只是為了確保它在異常情況下也會關閉。這也適用于StatementPreparedStatementResultSet。

    1. 驗證并測試它們ping

    2. 刷新DNS或使用JDBC URL中的IP地址。

    3. 根據my.cnfMySQL DB 驗證它。

    4. 啟動數據庫。

    5. 驗證mysqld是否在沒有啟動的情況下啟動--skip-networking option。

    6. 重新啟動數據庫并相應地修改代碼以關閉連接finally

    7. 禁用防火墻和/或配置防火墻/代理以允許/轉發端口。 

    1. JDBC URL中的IP地址或主機名是錯誤的。

    2. 本地DNS服務器無法識別JDBC URL中的主機名。

    3. JDBC URL中的端口號丟失或錯誤。

    4. 數據庫服務器已關閉。

    5. 數據庫服務器不接受TCP / IP連接。

    6. 數據庫服務器已用完連接。

    7. Java和DB之間的某些東西阻止了連接,例如防火墻或代理。 

就連接問題而言,這就是它。您可以在這里找到一個更高級的教程,如何借助基本的DAO類在數據庫中加載和存儲完整的Java模型對象。


查看完整回答
反對 回復 2019-05-23
  • 3 回答
  • 0 關注
  • 797 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號