我正在尝试使用内存数据库 SQLite 填充 jtable 但发生了一些语法错误,我不知道我的查询中的错误在哪里。所以有人帮助我解决错误原因并解决这个问题。
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
public class Databaseh2 extends javax.swing.JFrame {
DefaultTableModel dtm;
public Databaseh2() {
initComponents();
BOMTableLoad();
}
public static ArrayList<BOMUser> BOMUserList1() {
ArrayList<BOMUser> userlist = new ArrayList<>();
BOMUser bom;
try {
Statement st = DataBase.mycon().createStatement();
String sql = "select row_number()over (order by
Item
) as Sno
,Item
,Description
,"
+“Manufacturer Part Number
,Value
,Component Reference
,FootPrint
,Qty
来自bom
”;
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
bom = new BOMUser(rs.getInt("Sno"), rs.getString("Item"),
rs.getString("Description"), rs.getString("Manufacturer Part Number"),
rs.getString("Value"), rs.getString("Component Reference"),
rs.getString("FootPrint"), rs.getInt("Qty"));
userlist.add(bom);
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println(e);
}
return userlist;
}
private void BOMTableLoad() {
ArrayList<BOMUser> list = BOMUserList1();
dtm = (DefaultTableModel) BOMT.getModel();
dtm.setRowCount(0);
BOMT.setRowSorter(null);
Object[] row = new Object[8];
for (int i = 0; i < list.size(); i++) {
row[0] = list.get(i).getSno();
row[1] = list.get(i).getItem();
row[2] = list.get(i).getDescription();
row[3] = list.get(i).getManufacturerPartNumber();
row[4] = list.get(i).getValue();
row[5] = list.get(i).getComponentReference();
row[6] = list.get(i).getFootPrint();
row[7] = list.get(i).getQty();
dtm.addRow(row);
}
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
SP = new javax.swing.JScrollPane();
BOMT = new table.Table();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
BOMT.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null}
},
new String [] {
"S No", "Item", "Description", "Manufacturing Part Number", "Value", "Component Reference", "FootPrint", "QTY"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
SP.setViewportView(BOMT);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 1033, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(SP, javax.swing.GroupLayout.DEFAULT_SIZE, 1021, Short.MAX_VALUE)
.addContainerGap()))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 553, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(SP, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE)
.addContainerGap()))
);
pack();
}// </editor-fold>
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Databaseh2().setVisible(true);
}
});
}
// Variables declaration - do not modify
private table.Table BOMT;
private javax.swing.JScrollPane SP;
// End of variables declaration
}