0

我在 4rows 和 4columns 的数据库中有一个表。每列包含不同的数据。现在我想检索数据库中的所有数据并将它们放在另一个表单上的 JLabel 上。即在我的数据库中。

packageName.....monthlyFee..... YearlyFee....... TotalFee

常规.......................150..................300........ .............450

金……………………300………………400…… .............700

…………………………

现在我有一个表格,我在四行中放置了 4 个空 JLabels,但是我如何从数据库中检索值并将每个值放在适当的标签中?

这就是我所做的,但我仍然无法绕过它。我卡住了。

谢谢任何人。

 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));
               }

..................................................... .....................

4

2 回答 2

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);
}

如果不是字符串,而是稍后使用的对象,那么您可以创建一个类:

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 准备好放入小程序。

于 2013-11-01T08:17:17.783 回答
1

不要使用 JLabel。您无法轻松地格式化数据以便获得表格数据。

相反,您应该使用 JTable。阅读 Swing 教程中有关如何使用表格的部分以获取更多信息。您还可以在论坛中搜索将 JTable 与 ResultSet 结合使用的示例。

于 2013-11-01T14:58:48.940 回答