我几乎完成了我的项目,并且无法将数据从数据库显示到Jtable中。我已经搜索和阅读,但仍然无法正常工作。我没有显示任何错误,但是当我运行代码时,单击搜索数据时出现错误。我懂了
java.sql.SyntaxErrorException: Syntax error: Encountered "INVENTORY"
在第1行的第9列。这是否意味着我的代码还可以,并且它与数据库有关?
这是我的代码。
private void cmdSEARCHINVActionPerformed(java.awt.event.ActionEvent evt) {
ResultSet rs = null;
try {
String host = "jdbc:derby://localhost:1527/The_Home_Place";
String uName = "Lynn";
String uPass = "Lynn";
Connection con = DriverManager.getConnection( host, uName, uPass );
Statement stmt = con.createStatement();
String Query = "SELECT *INVENTORY";
rs = stmt.executeQuery(Query);
ResultSetMetaData rsmt = rs.getMetaData();
int col = rsmt.getColumnCount();
Vector column = new Vector(col);
for(int i = 1; i <= col; i++)
{
column.add(rsmt.getColumnName(i));
}
Vector data = new Vector();
Vector row = new Vector();
while (rs.next());
{
row = new Vector(col);
for(int i = 1; i <= col; i++){
row.add(rs.getString(i));
}
data.add(row);
}
//Create the Table
JFrame frame = new JFrame();
frame.setSize(500,120);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JTable table = new JTable(data,column);
JScrollPane jsp = new JScrollPane(table);
panel.setLayout(new BorderLayout());
panel.add(jsp,BorderLayout.CENTER);
frame.setContentPane(panel);
frame.setVisible(true);
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex.toString());
}
}
最佳答案
您的SQL查询语法无效。尝试将其更改为
String query = "SELECT * FROM INVENTORY";
代替。同样,您不应该再使用
Vector
了,因为该类已经过时了。使用ArrayList<String>
(generic集合,而不是原始集合)存储行数据。关于java - 从NetBeans中的mysql数据库绑定(bind)jtable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35441419/