我编写了一个Java程序,该程序能够将客户添加到数据库中,然后通过用户名或customer_id进行查找。
我能够将用户添加到数据库而不会出现问题。另外,我可以通过用户名或customer_id选择一个用户,并将用户信息打印到JTextArea中进行查看。但是,我想做的是将用户信息从数据库行中的每个特定列打印到表单上相应的JTextField中。我认为我需要使用数组来执行此操作,但到目前为止我还没有成功。
此时我选择数据的代码如下:
public String selectCustomer() throws ClassNotFoundException, SQLException{
String result = "";
String strSQL = "SELECT * FROM customer WHERE username = '" + this.getUsername() + "'";
DataAccess DA = new DataAccess();
ResultSet rs;
try{
rs = DA.getResultSet(strSQL);
ResultSetMetaData metaData = rs.getMetaData();
int columns=metaData.getColumnCount();
while(rs.next()){//reading one record
for(int i=1;i<=columns;++i) {//this reads column by column
result+="<"+metaData.getColumnName(i)+">";
result+=rs.getString(i);
result+="</"+metaData.getColumnName(i)+">\n";
}//closes for loop
}//closes while loop
}//closes try
catch(SQLException sqle){sqle.printStackTrace();}
catch(Exception e){e.printStackTrace();}
return result;
}
现在,我需要更改代码以将列结果放入数组中,然后我应该能够简单地从数组中提取数据,对吗?我可能完全不在这里了。我不知道。 D:
任何意见,将不胜感激。
谢谢!
最佳答案
当然,您可以使用getString(和其他getXXX方法)从ResultSet中获取值,然后使用setText将值放入文本字段中。
本教程可能会有所帮助:http://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html
PS我忘了说了,如果您愿意,可以按列名而不是按列索引来获取值-速度稍慢,但是使代码更易于编写和维护。
高温超导