gpt4 book ai didi

java - 如何将 Java 中 SQL 查询的结果打印到每列的单独 JTextField 中?

转载 作者:行者123 更新时间:2023-12-02 08:04:45 25 4
gpt4 key购买 nike

我编写了一个 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:

如有任何建议,我们将不胜感激。

谢谢!

最佳答案

也许类似的东西可以提供帮助,您可以创建语句和连接作为实例变量,这样您就可以定期检查它是否打开。如果你想作为数组返回,你应该使用多维数组

 public ArrayList<ArrayList<String>> getQueryResult(String query){

ArrayList<ArrayList<String>> feedback = new ArrayList<ArrayList<String>>();
ArrayList<String> feed = null;

try {
ResultSet rs = stm.executeQuery(query);

ResultSetMetaData rsm = rs.getMetaData();
feed = new ArrayList<String>();

for(int y = 1;y<rsm.getColumnCount();y++){

feed.add(rsm.getColumnName(y));
}
feedback.add(feed);

while(rs.next()){
feed = new ArrayList<String>();
for(int i=1;i<=rsm.getColumnCount();i++){

feed.add(rs.getString(i));
}
feedback.add(feed);
}



} catch (SQLException e) {
//handler
}
return feedback;

}

关于java - 如何将 Java 中 SQL 查询的结果打印到每列的单独 JTextField 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8359903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com