出于某种原因,我使用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无关。