Java 如何安装JDBC以及如何使用它连接到mysql?

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

我正在尝试安装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


请尝试将.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上#2Run
Class.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();
        }
    }
}