データベースにいくつかのレコードがあり、Java アプリケーション GUI の Jtable に表示したいと考えています。Jtable をカスタマイズし、データベースにない列をいくつか追加しました。よろしくお願いします。以下のコードは、単一の列に単一のレコードのみを表示します (具体的に説明する列)
public NewJFrame() {
ArrayList data = new ArrayList();
initComponents();
okay.setVisible(true);
try {
String myDriver = "com.mysql.cj.jdbc.Driver";
String myUrl = "jdbc:mysql://localhost:3306/lostfound";
Class.forName(myDriver);
Connection c = DriverManager.getConnection(myUrl, "root", "");
String sql = "SELECT * FROM found";
Statement st = c.createStatement();
// execute the query, and get a java resultset
ResultSet rs =st.executeQuery(sql);
while(rs.next())
{
String name = rs.getString("name");
String description = rs.getString("description");
String location = rs.getString("location");
jTable2.getModel().setValueAt(name, WIDTH, ICONIFIED);
jTable2.getModel().setValueAt(description, WIDTH, ICONIFIED);
jTable2.getModel().setValueAt(location, WIDTH, ICONIFIED);
}
}
catch (SQLException e)
{
System.out.println( e.getMessage() );
} catch (ClassNotFoundException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
jTable2.show();
}
resultSet
データを単一の行と列に割り当てていrow
ます。以下に示すように、カウンターが必要で、行ごとにインクリメントします。
int row=0;
while(rs.next()) {
String name = rs.getString("name");
String description = rs.getString("description");
String location = rs.getString("location");
jTable2.getModel().setValueAt(name, row, 0);//name at column 0 always
jTable2.getModel().setValueAt(description, row, 1);//desc at column 1 always
jTable2.getModel().setValueAt(location, row, 2);//location at column 2 always
row++;//increment row counter for each record
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加