我在4rows和4columns的数据库中有一个表。每列包含不同的数据。 现在我想检索数据库中的所有数据,并将它们放在另一个表单上的JLabel上。即 在我的数据库中我有。
packageName ..... monthlyFee ..... YearlyFee ....... TotalFee
正...................... 150 .................. 300 .... ................ 450
金......................... 300 ................... 400 .................. 700
..... ..... .... ....
现在我有一个表单,我已经在4行中放置了4个空JLabel但是如何从数据库中检索值并将每个值放在相应的Label中?。
这就是我所做的,但我仍然无法绕过它。我卡住了。
谢谢任何人。
public void getPrices()
{
String srt ="SELECT * FROM program_tbl";
try
{
con.connect();
ps = con.con.prepareStatement(srt);
rs = ps.executeQuery();
ResultSetMetaData data = rs.getMetaData();
int colums = data.getColumnCount();
while(rs.next())
{
Vector rows = new Vector();
for (int i = 1; i < colums; i++)
{
rows.addElement(rs.getObject(i));
}
............................................... ......................
答案 0 :(得分:2)
如果您想将此数据作为字符串获取,那么您可以尝试类似:
Vector<String> rows = new Vector<String>();
while(rs.next()) {
String rowEntry = rs.getString("packageName") +
rs.getString("monthlyFee") +
rs.getString("yearlyFee") +
rs.getString("totalFee") +
rows.add(rowEntry);
}
如果不是String,而是稍后使用的对象,则可以创建一个类:
public class MyObject {
private String packageName;
private int monthlyFee;
private int yearlyFee;
private int totalFee;
public MyObject (String name, int monthlyFee, int yearlyFee, int totalFee) {
this.packageName = name;
this.monthlyFee = monthlyFee;
this.yearlyFee = yearlyFee;
this.totalFee = totalFee;
}
/*Setters
*And
*Getters*/
}
然后将其用作:
Vector<MyObject> rows = new Vector<MyObject>();
while (rs.next()) {
MyObject obj = new MyObject(rs.getString("packageName")
, rs.getInt("montlyFee")
, rs.getInt("yearlyFee")
, rs.getInt("totalFee")
);
rows.add(obj)
}
所以说我们现在有一个带字符串值的向量 - Vector<String> rows;
现在我想创建那些JLabel。
JLabel[] myLabels = new JLabel[v.size()];
for(int i=0; i<rows.size(); i++) {
as[i] = new JLabel(rows.get(i));
}
现在我们有一个JLabel数组可以放到applet中了。
答案 1 :(得分:1)
不要使用JLabel。您无法轻松格式化数据,以便获得表格数据。
相反,你应该使用JTable。有关详细信息,请阅读How to Use Tables上Swing教程中的部分。您还可以在论坛中搜索使用带有ResultSet的JTable的示例。