JTable不起作用



出于某种原因,我使用Java创建的数据在使用JTable时不会变成表。有人可以向我解释为什么吗?是因为我的列或行计数器关闭了吗?我的代码和错误日志在下面

import java.awt.BorderLayout;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;`
@SuppressWarnings("serial")
public class tab extends JFrame
{
public tab()
{
    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        Connection dbConn =    DriverManager.getConnection("jdbc:mysql://www.papademas.net/Inventory?"
                                                           + "user=root&password=jamesp");
        Statement st = dbConn.createStatement();
    Vector<Vector<Object>> data = new Vector<Vector<Object>>();
    Vector<String> column = new Vector<String>();
    try {
        st = dbConn.createStatement();
        ResultSet res = st.executeQuery("SELECT * FROM JReimTicketer");
        ResultSetMetaData metaData = res.getMetaData();
        int columns = metaData.getColumnCount();
        //get column names from table!
        String cols = ""; 
        for (int i = 1; i <= columns ; i++) {
           cols = metaData.getColumnName(i);
           column.add(cols);
        }
        //get row data from table!
        while (res.next()) {
           Vector<Object> row = new Vector<Object>(columns);
           for (int i = 1; i <= columns; i++) {
            row.addElement(res.getObject(i));
           } 
           data.addElement(row);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    JTable table = new JTable(data,column);
    JScrollPane scrollPane = new JScrollPane( table );
    getContentPane().add( scrollPane );
    JPanel buttonPanel = new JPanel();
    getContentPane().add( buttonPanel, BorderLayout.SOUTH );
}
    catch (InstantiationException e) {
        System.err.println("Error in Instantiation!");
    }
    catch (ClassNotFoundException e) {
        System.err.println("Class not found!");
    }
    catch (IllegalAccessException e) {
        System.err.println("Access denied!");
    }
    catch (SQLException e) {
        System.err.println("SQL Error! " + e.getMessage() );
    } 
}
public static void main(String[] args)
{
    tab frame = new tab();
    frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
    frame.pack();
    frame.setVisible(true);
}
}



com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'inventory.jreimticketer' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)
at com.mysql.jdbc.Util.getInstance(Util.java:372)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2531)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2489)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1446)
at tab.<init>(tab.java:33)
at tab.main(tab.java:84)
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table
'inventory.jreimticketer' doesn't exist

错误是自我解释的,您尝试访问不存在

只需检查 jreimticketer 实际上是否存在或不存在于您的数据库中。

问题即将到来,因为您的表不存在数据库中。它与JTable无关。

最新更新