Как установить JDBC и как использовать его для подключения к MySQL? - PullRequest
5 голосов
/ 06 июля 2010

я пытаюсь установить 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 ]

9 голосов
/ 06 июля 2010

Вы пытаетесь подключить MySQL с URL-адресом драйвера jTDS JDBC , который разработан специально для Microsoft SQL Server . Это никогда не сработает. Даже если вы не исправите текущую проблему, поместив файл JAR в classpath.

Вам действительно нужен драйвер MySQL JDBC . Также см. этот ответ для краткого, но полного урока

1 голос
/ 07 июля 2010

'Я пытаюсь установить JDBC'

Вам не нужно устанавливать JDBC.Это часть JDK & JRE.

1 голос
/ 06 июля 2010

У вас, конечно, есть проблемы с JDBC, но об этом вам не говорят. Прочитайте это снова:

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

Это ваш Test1.class, который он не может найти, а не драйвер JDBC.

Вы не должны копировать что-либо в каталог jre / lib / ext. Это для расширений библиотеки, а не JDBC JAR. Он не был задуман для людей, которые не понимают, как работает CLASSPATH.

Я бы написал это больше похоже на следующее. Эти близкие методы пригодятся.

Когда я запускаю его на своем компьютере, добавляя JAR-файл MySQL JDBC в мой 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();
        }
    }
}
1 голос
/ 06 июля 2010

С другой стороны, если вы используете IDE, например Netbeans или Eclipse, вы можете добавить файл jar в качестве ресурса в проект.

0 голосов
/ 06 июля 2010

Библиотека, содержащая драйвер (net.sourceforge.jtds.jdbc.Driver), должна находиться на пути к классам.

Предполагается, что вы запускаете приложение с

java Test1

, а затем просто делаете

java -cp .;driver.jar Test1

, где 'driver.jar' следует заменить именем файла (относительный или полный путь) вашей библиотеки драйверов lib.

EDIT

Учебник по пути к классамбудет превышать раздел комментариев ниже этого вопроса.Пожалуйста, возьмите чашку кофе и посмотрите на эту страницу .Скорее всего, это поможет вам продолжить.

0 голосов
/ 06 июля 2010

Попробуйте поместить свой файл .jar в classpath .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...