こんにちは私は一致する学生がいないときにエラーを発生させようとしています...そしてそれはこのように表示されますNo matching records found
そして、列名は同じにしたいのですが、まだわかりません...これが正しいかどうか誰か教えてもらえますか?
そのための私の関数がここにあります...そして、私がエラーを入れた場所にコメントを追加します...しかし、私は列名を取得する方法がわかりません
public void SearchTableStudent() {
String tempSearchValue = searchStudent.getText().trim();
boolean empty = true;
sql = "SELECT student_id as 'Student ID',"
+ "concat(lastname, ' , ', firstname, ' ', middlename) as 'Name'"
+ "FROM user "
+ "WHERE CAST(student_id as CHAR) LIKE '%" + tempSearchValue + "%'";
try {
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()) {
table.setModel(DbUtils.resultSetToTableModel(rs));
empty = false;
}
if(empty) {
String error = "";
table.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{"No matching records found",null}
},
new String [] {
/** I WANT TO PUT THE SAME COLUMN NAME ON MY DATABASE SELECTED BUT DON't Know
WHAT FUNCTION TO DO*/
}
));
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
私はこのようにしようとしますが、それでも私にNULLを与えました!!!このコードは以下のempty = false;
for(int i=0; i<table.getColumnCount(); i++) {
test[i] = table.getColumnName(i);
}
ResultSetMetaData metaData = resultSet.getMetaData();
int count = metaData.getColumnCount(); //number of column
String columnName[] = new String[count];
for (int i = 1; i <= count; i++)
{
columnName[i-1] = metaData.getColumnLabel(i);
System.out.println(columnName[i-1]);
}
これを試して。
ResultSetMetaData meta = resultset.getMetaData();
Integer columncount = meta.getColumnCount();
int count = 1 ; // start counting from 1 always
String[] columnNames = new String[columncount];
while(count<=columncount){
columnNames [count-1] = meta.getColumnLabel(count);
count++;
}
ここでは、列名の代わりに列エイリアスを取得することが期待されているため、ResultSetmetaData.getColumnNameではなくResultSetMetaData.getColumnLabelを使用する必要があります。
Get ResultSetMetaData
使用 ResultSet#getMetaData()
:
ResultSetMetaData meta = rs.getMetaData();
そして、最初の列の列名を取得するには:
String col1Name = meta.getColumnLabel(1);
同様に、2番目の列の列名を取得するには:
String col2Name = meta.getColumnLabel(2);
メタデータを取得する
ResultSetMetaData metaData = rs.getMetaData();
次に、次のことができます。
String columnName = metaData.getColumnName(int index);
rs.getMetaData().getColumnName(int i);
クエリパラメータを連結しないでください!