簡體   English   中英

如何安裝JDBC以及如何使用它連接到mysql?

[英]how to install JDBC and how to use it to connect to mysql?

我正在嘗試安裝 JDBC,但我不知道如何,當您只有 jar 文件時,我將它復制到我的 java ext 文件夾,但它一直給我一個錯誤,誰能告訴我如何完成安裝驅動程序並使用它?

下面是我使用的代碼

import java.sql.*;
public class Test1
{
    public static void main (String[] args)
    {
        String url = "jdbc:mysql://localhost:3306/sabayafr_sabmah";
        String username = "root";
        String password = "ma";
        Connection connection = null;
        try {
            System.out.println("Connecting database...");
            connection = DriverManager.getConnection(url, username, password);
            System.out.println("Database connected!");
        } catch (SQLException e) {
            System.err.println("Cannot connect the database!");
            e.printStackTrace();
        } finally {
            System.out.println("Closing the connection.");
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException ignore) {

                }
            }
        }
    }
}

下面是我得到的回應

Cannot connect to database server

更新 #3

C:\Users\AlAsad\Desktop>java -cp .;mysql-connector-java-5.0.8-bin.jar Test1
Connecting database...
Cannot connect the database!
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/
sabayafr_sabmah
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at Test1.main(Test1.java:12)
Closing the connection.

您正在嘗試將MySQL與專為Microsoft SQL Server設計的jTDS JDBC 驅動程序的 URL 連接。 這永遠不會奏效。 甚至當您通過將 JAR 文件放在類路徑中來解決當前問題時也不行。

您確實需要MySQL JDBC 驅動程序 另請參閱此答案以獲取簡短但完整的教程

另一方面,如果您使用諸如 Netbeans 或 Eclipse 之類的 IDE,您可以將 jar 文件作為資源添加到項目中。

您肯定有 JDBC 問題,但異常並沒有告訴您這一點。 再讀一遍:

Exception in thread "main" java.lang.NoClassDefFoundError: Test1
Caused by: java.lang.ClassNotFoundException: Test1

它找不到您的Test1.class,而不是 JDBC 驅動程序。

您不應將任何內容復制到 jre/lib/ext 目錄中。 這是用於庫擴展,而不是 JDBC JAR。 對於不了解 CLASSPATH 工作原理的人來說,它並不是一個拐杖。

我會更像下面這樣寫。 那些關閉的方法會派上用場。

當我在我的機器上運行它時,將 MySQL JDBC JAR 添加到我的 CLASSPATH,我得到以下結果:

C:\java -classpath .\mysql-connector-java-5.1.6-bin.jar; persistence.utils.DatabaseUtils
product: MySQL
version: 5.1.24-rc-community
major  : 5
minor  : 1

這是源代碼:

package persistence.utils;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DatabaseUtils
{
    public static final String DRIVER = "com.mysql.jdbc.Driver";
    public static final String URL = "jdbc:mysql://localhost:3306/contacts";
    public static final String USERNAME = "contacts";
    public static final String PASSWORD = "contacts";

    public static void main(String[] args)
    {
        Connection connection = null;

        try
        {
            String driver = ((args.length > 0) ? args[0] : DRIVER);
            String url = ((args.length > 1) ? args[1] : URL);
            String username = ((args.length > 2) ? args[2] : USERNAME);
            String password = ((args.length > 3) ? args[3] : PASSWORD);

            connection = getConnection(driver, url, username, password);

            DatabaseMetaData metaData = connection.getMetaData();

            System.out.println("product: " + metaData.getDatabaseProductName());
            System.out.println("version: " + metaData.getDatabaseProductVersion());
            System.out.println("major  : " + metaData.getDatabaseMajorVersion());
            System.out.println("minor  : " + metaData.getDatabaseMinorVersion());
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            close(connection);
        }
    }


    public static Connection getConnection(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException
    {
        Connection connection = null;

        Class.forName(driver);
        connection = DriverManager.getConnection(url, username, password);

        return connection;
    }

    public static void close(Connection connection)
    {
        try
        {
            if (connection != null)
            {
                connection.close();
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }

    public static void close(Statement statement)
    {
        try
        {
            if (statement != null)
            {
                statement.close();
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }

    public static void close(ResultSet resultSet)
    {
        try
        {
            if (resultSet != null)
            {
                resultSet.close();
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }

    public static void rollback(Connection connection)
    {
        try
        {
            if (connection != null)
            {
                connection.rollback();
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
}

“我正在嘗試安裝 JDBC”

您不必安裝 JDBC。 它是 JDK 和 JRE 的一部分。

嘗試將您的 .jar 文件放在classpath 中

包含驅動程序( net.sourceforge.jtds.jdbc.Driver )的庫需要在類路徑上。

假設你開始你的應用程序

java Test1

然后簡單地做

java -cp .;driver.jar Test1

其中“driver.jar”應該與數據庫驅動程序庫的文件名(相對或完整路徑)交換。

編輯

類路徑教程將超出此問題下方的評論部分。 請喝杯咖啡看看這個頁面 它很可能會幫助您繼續。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM