соединение с базой данных не работает в jar, но работает в eclipse - PullRequest
0 голосов
/ 06 июня 2011

Я создал простую базу данных на MYSQL, из которой я пытаюсь получить данные в Java-программе, написанной на Eclipse.Когда я запускаю программу в eclipse, она прекрасно вытягивает данные, но когда я экспортирую программу в работающий JAR, он просто не работает !!

Я добавил соединитель mysql, используя команду «add»Внешний архив »в пути сборки, и проверили его наличие с помощью

System.out.println("classpath = " + System.getProperty("java.class.path"));

, который дает результаты: classpath = C: \ Users \ Andy \ workspace \ test2 \ bin; C: \ Users\ Admin \ Desktop \ mysql-connector-java-5.1.16 \ mysql-connector-java-5.1.16-bin.jar

Я также открыл экспортированный файл JAR и увидел, что соединитель имеетбыл добавлен.

Вот код, который я использую:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

import javax.swing.JOptionPane;



public class test
{
    public static void main(String args[])
{
    try
    {

        Class.forName("com.mysql.jdbc.Driver").newInstance();

        Connection dbConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/cambridge","root","P@ssw0rd");
        System.out.println("classpath = " + System.getProperty("java.class.path"));

        Statement stmt = dbConn.createStatement();

        String strSQL = "Select * from customer_details";

        ResultSet rs = stmt.executeQuery(strSQL);

        ResultSetMetaData rsmd = rs.getMetaData(); 

        int nCol = rsmd.getColumnCount();

        while(rs.next())
        {
            for(int col=1; col<=nCol; col++)  
            {
                System.out.print(rs.getString(col));
                JOptionPane.showMessageDialog(null, rs.getString(col));
            }

            System.out.println();
        }

        System.out.println();

        dbConn.close();  
    }
    catch (Exception excp)
    {
        excp.printStackTrace();
    }
}
}

Заранее благодарим за любую помощь, которую вы можете предложить !!!

1 Ответ

0 голосов
/ 07 июня 2011

НАКОНЕЦ ПОЛУЧИЛ ЭТО !!!

Я сделал следующее:

Window -> Preferences -> Java -> Build Path -> Classpath Variables

затем нажмите на новое, введите имя, затем нажмите на файл и перейдите к разъему mysql, а затем нажмите ОК !!

Не совсем уверен, почему это сработало, но когда я сделал то же самое, но для отдельного проекта - нет, но это сработало, и это главное !!

Спасибо всем, кто откликнулся и предложил мне помощь. Это заняло у меня некоторое время, но я попал туда в конце !! : О)

...