![](/img/trans.png)
[英]How to install com.mysql.jdbc.Driver on debian to connect to database java
[英]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.