Java 如何安装JDBC以及如何使用它连接到mysql?
我正在尝试安装JDBC,但我不知道如何安装,当您只有jar文件时,我将其复制到我的java ext文件夹中,但它一直给我一个错误,有人能告诉我如何完成安装和使用驱动程序吗 下面是我使用的代码Java 如何安装JDBC以及如何使用它连接到mysql?,java,jdbc,Java,Jdbc,我正在尝试安装JDBC,但我不知道如何安装,当您只有jar文件时,我将其复制到我的java ext文件夹中,但它一直给我一个错误,有人能告诉我如何完成安装和使用驱动程序吗 下面是我使用的代码 import java.sql.*; public class Test1 { public static void main (String[] args) { String url = "jdbc:mysql://localhost:3306/sabayafr_sabma
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
请尝试将.jar文件放入 包含驱动程序的库(
net.sourceforge.jtds.jdbc.Driver
)需要位于类路径上
假设您以
java Test1
然后简单地做
java -cp .;driver.jar Test1
其中“driver.jar”应与数据库驱动程序库的文件名(相对或完整路径)交换
编辑
类路径教程将超出此问题下面的注释部分。请喝杯咖啡,看看你的眼睛。它很可能会帮助您继续。另一方面,如果您使用的是Netbeans或Eclipse之类的IDE,您可以将jar文件作为资源添加到项目中。您正在尝试连接一个专门为其设计的URL。这是行不通的。即使在您通过将JAR文件放在类路径中来修复当前问题时也不行
你真的需要这个。另请参见简短但完整的教程您肯定有JDBC问题,但例外情况并没有告诉您这一点。再读一遍:
Exception in thread "main" java.lang.NoClassDefFoundError: Test1
Caused by: java.lang.ClassNotFoundException: Test1
找不到的是Test1.class,而不是JDBC驱动程序
您不应该将任何内容复制到jre/lib/ext目录中。这是用于库扩展,而不是JDBCJAR。对于不了解类路径如何工作的人来说,它并不是一个拐杖
我会写得更像下面这样。这些严密的方法会派上用场的
当我在我的机器上运行它,将MySQL JDBC JAR添加到我的类路径时,我得到以下结果:
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的一部分。Hey Andreas\u D当我添加到我的java应用程序
java-cp。;driver.jar my.product.Class
我得到error@Mahmoud-你知道我的片段只是解释一般方法的示例!?将确切的行复制到您的环境中将不起作用。我没有复制确切的行,我复制了方法并更改为真实信息,但在方法末尾我一直没有得到my.product.class。啊,对不起,请将my.product.class
替换为Test1
(包含主方法的类).Hey@BalusC我完全理解我使用了这种方法,但是我不知道如何将驱动程序安装到我的类中。您需要将包含JDBC驱动程序的JAR文件添加到运行时类路径中。链接的答案详细解释了这一点。如果您使用的是IDE,只需将JAR文件添加为构建路径的库即可。如果使用的是java.exe
,则需要在-cp
参数中指定其路径。路径应该是绝对的,例如c:/path/to/mysql connector.jar
,或者相对于当前工作目录,例如mysql connector.jar
,当jar文件位于执行java.exe
的同一文件夹中时。很抱歉,这是我的错误,我添加了错误的驱动程序,但我还是在更新时发现了一个错误,我把它贴在了update上#2RunClass.forName(“com.mysql.jdbc.Driver”)代码>在调用之前。它位于链接答案的一个单独的try
块中。请深呼吸,小心地从上到下走。不要着急;)你是大师谢谢你感谢你百万次了男人,现在我可以开始我的项目了,你最好的,我希望向你学习,正如巴卢斯提到的:请替换System.err.println(“无法连接到数据库服务器”)使用e.printStackTrace()
编码>并发布异常。检查问题编辑历史记录。他对自己的问题进行了多次编辑,用他遇到的每一种新问题删除/替换了原来的编码和问题+不管你如何努力解释“当前”的问题:)你的建议是正确的,但我讨厌人们用IDE做他们不理解的事情。每个使用Java的人都应该知道命令行和类路径。
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();
}
}
}