Agwu Chile
Agwu Chile

Reputation: 21

getting values from Database to JLabel

i have a table in the database of 4rows and 4columns. each column holds a different data. now i want to retrieve all the data in the database and put them on JLabel on another form. i.e in my Database i have.

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

Regular......................150..................300....................450

Gold.........................300...................400..................700

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

now i have a form that i have put 4 empty JLabels in four rows but how do i retrieve the values from the database and place each value in the appropriate Label?.

This is what i've done but i still cant get around it. im stuck.

Thank you anyone.

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

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

Upvotes: 0

Views: 2504

Answers (2)

camickr
camickr

Reputation: 324128

Don't use a JLabel. There is no way you can easily format the data so that you get tabular data.

Instead you should be using a JTable. Read the section from the Swing tutorial on How to Use Tables for more information. You can also search the forum for examples of using a JTable with a ResultSet.

Upvotes: 1

Tony  Jorginson
Tony Jorginson

Reputation: 21

If you want to get this data as a string then you could probably try something like:

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

If not String, but an object to use later, then you can create a class:

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*/
}

And then use it as:

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

So say we now have a vector with String values - Vector<String> rows; now i would like to create those JLabels.

JLabel[] myLabels = new JLabel[v.size()];
for(int i=0; i<rows.size(); i++) {
   as[i] = new JLabel(rows.get(i));
}

And now we have an array of JLabels ready to be put to applet.

Upvotes: 2

Related Questions