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

时间:2010-07-05 21:37:52

标签: 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_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.

6 个答案:

答案 0 :(得分:9)

您正尝试将MySQL与专为jTDS JDBC driver设计的Microsoft SQL Server的网址相关联。这永远不会奏效。即使不是通过将JAR文件放在类路径中来修复当前问题。

你真的需要MySQL JDBC driver。另请参阅this answer了解简短但完整的教程

答案 1 :(得分:1)

另一方面,如果您使用的是Netbeans或Eclipse等IDE,则可以将jar文件作为资源添加到项目中。

答案 2 :(得分:1)

你当然有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();
        }
    }
}

答案 3 :(得分:1)

  

'我正在尝试安装JDBC'

您不必安装JDBC。它是JDK& amp;的一部分。 JRE。

答案 4 :(得分:0)

尝试将.jar文件放在classpath中。

答案 5 :(得分:0)

包含驱动程序(net.sourceforge.jtds.jdbc.Driver)的库需要位于类路径中。

假设您使用

启动应用程序
java Test1

然后简单地做

java -cp .;driver.jar Test1

其中'driver.jar'应与数据库驱动程序库的文件名(相对路径或完整路径)交换。

修改

类路径教程将超出此问题下方的评论部分。请喝一杯咖啡,然后看this page。它很可能会帮助你继续。