数据库连接在jar中不起作用,但在eclipse中工作

时间:2011-06-06 03:50:27

标签: java mysql eclipse database-connection

我在MYSQL中创建了一个简单的数据库,我试图从用Eclipse编写的java程序中提取数据。当我在eclipse中运行程序时,它可以很好地提取数据,但是当我将程序导出到可运行的JAR中时,它就无法工作!!

我已经在构建路径中使用“添加外部存档”功能添加了mysql连接器,并使用

检查了它
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 :(得分:0)

最后得到它!!!

我做了以下事情:

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

然后单击new,输入一个名称,然后单击文件并导航到mysql连接器,然后点击确定!!

不完全确定为什么会这样,但是当我做的几乎相同时,但是对于个别项目没有,但是它起作用了,这就是主要的事情!!

感谢所有回复并向我提供帮助的人。我花了一段时间,但最终我到了那里! :O)