データベースに保存されているデータを JTable に取り込もうとしています。「データベースに追加されたレコード」というprintln
ステートメントがあり、それを18回出力するため、データベース内の行数は出力されたステートメントの数と一致します。しかし、JTable に何も表示されず、どこに間違いがあるのか わかりません。
コード:
try {
conn = SQLConnect.ConnectDb();
String sql = "SELECT * FROM CriminalRecords WHERE FName = ? and Sname = ?";
pst = conn.prepareStatement(sql);
pst.setString(1, NameSearch.getText());
pst.setString(2, SurnameSearch.getText());
rs = pst.executeQuery();
//display data from db into table hmm
ResultSetMetaData md = rs.getMetaData();
int columnNumber = md.getColumnCount();
Vector columns = new Vector(columnNumber);
// Get column names
//store column names
for(int i=1; i<=columnNumber; i++)
{
columns.add(md.getColumnName(i));
}
Vector data = new Vector();
Vector row;
//store row data
while(rs.next())
{
row = new Vector(columnNumber);
for(int i=1; i<=columnNumber; i++)
{
row.add(rs.getObject(i));
System.out.println("Records added to Table");
}
data.add(row);
}
JTable table1 = new JTable(data, columns);
this.add(table1);
rs.close();
pst.close();
conn.close();
JTable コード
/---- table1 ----
table1.setModel(new 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, 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, 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, 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[] {
"First Name", "Middle Name", "Surname", "Date of Birth", "Address", "Home Phone", "Business Phone", "Mobile Phone", "Resident Status", "Sex", "Race", "Incident Location", "Zone", "Premise Type", "Date Recorded", "Time Recorded", "Weapons", "Crime Offences"
}
));
table1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
scrollPane1.setViewportView(table1);