Avatar billede dk_zerocool Nybegynder
09. december 2002 - 16:00 Der er 7 kommentarer og
1 løsning

Indsætte data fra database i GUI-tabel ??

Jeg har en database hvori der er en tabel med aftaler som jeg skal ha udskrevet i en tabel i GUI.

tabellen i Java/GUI skal indeholde mindst 4 kolonner:
FraKlokken
TilKlokken
Aftale
Brugernavn

Mit databasekald: 
ResultSet set;
set = dbcon.sqlResult("SELECT...");
Avatar billede arne_v Ekspert
09. december 2002 - 16:05 #1
Prøv og smug-læs lidt i:
http://www.eksperten.dk/spm/292787
Avatar billede aslan Nybegynder
09. december 2002 - 16:47 #2
Hvis du kan gennemskue dette simple eksempel jeg lavede engang er det lige det du skal bruge.....


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import javax.swing.table.*;

class GM_Hotel extends JFrame implements ActionListener
{
    MK_Hotel sql;
    JTextField hotelNr,navn,adresse;
    Container panel = getContentPane();
    JButton smidInd;
    JButton tagUd;
    JButton slet;
    JScrollPane scroll;
    JTable area;
    Table tabel;
   
    GM_Hotel()
    {
        sql = MK_Hotel.getInstance();
        tabel = new Table(sql);
       
        hotelNr = new JTextField();
        navn = new JTextField();
        adresse = new JTextField();
        area = new JTable(tabel);
        scroll = new JScrollPane(area);
        smidInd = new JButton("Insert");
        smidInd.addActionListener(this);
        tagUd = new JButton("Get");
        tagUd.addActionListener(this);
        slet = new JButton("Delete");
        slet.addActionListener(this);
       
        JPanel p = new JPanel(new GridLayout(1, 2, 5, 2));
       
        JPanel ps = new JPanel(new GridLayout(4,2,20,10));
       
        ps.add(new JLabel("Hotel Nr"));
        ps.add(hotelNr);
     
       
        ps.add(new JLabel("Navn"));
        ps.add(navn);
       
       
        ps.add(new JLabel("Adresse"));
        ps.add(adresse);
        p.add(ps);   
       
       
        JPanel po = new JPanel(new GridLayout(4,1,20,10));
        po.add(smidInd);   
        po.add(tagUd);
        po.add(slet);
        p.add(po);
       
        panel.setLayout(new GridLayout(2,1));
        panel.add(p);
        panel.add(scroll);
       
        setBounds(250,100,500,500);
        setVisible(true);
       
    }
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()==smidInd)
        {
            sql.indsaetHotel(Integer.parseInt(hotelNr.getText()),navn.getText(),adresse.getText());
            tabel.hentData();
            tabel.fireTableDataChanged();
        }
        if(e.getSource()==tagUd)
        {
 
            tabel.hentData();
            tabel.fireTableDataChanged();

        }   
        if(e.getSource()==slet)
        {
            sql.sletHotel(Integer.parseInt(hotelNr.getText()));
            tabel.hentData();
            tabel.fireTableDataChanged();
        }           
   
    }
    public static void main(String[] aslan)
    {
        new GM_Hotel();
    }   
}

class Table extends AbstractTableModel
{
    MK_Hotel sql;
    String[] overSkrift={"Hotel Nr","Navn","Adresse"};
    Object data[][];
   
    Table(MK_Hotel sql)
    {
        this.sql=sql;
       
        data = new Object[0][3];
                       
       
    }
    public void hentData()
    {
          data = new Object[sql.hotelTaeller()][3];
       
          try{
                 
            ResultSet row = sql.hentHotel();
           
            for(int i=0;row.next();i++)
            {
                    int ii = 0;
                    data[i][ii] = row.getObject("hotel_no");
                    ii++;
                    data[i][ii] = row.getObject("name");
                    ii++;
                    data[i][ii] = row.getObject("address");
                    ii++;
            }

            }catch (SQLException c){}
            catch(NullPointerException a){}           
    }
    public int getColumnCount()
    {
        return overSkrift.length;
    }       
    public int getRowCount()
    {
        return data.length;
    }
    public String getColumnName(int col)
    {
        return overSkrift[col];
    }
    public Object getValueAt(int row, int col)
    {
        return data[row][col];
    }
    public boolean isCellEditable(int row, int col)
    {
        return false;
   
    }
    public void setValueAt(Object value, int row, int col)
    {
        data[row][col] = value;
        fireTableCellUpdated(row, col);
                   
    }       
}
Avatar billede dk_zerocool Nybegynder
09. december 2002 - 17:06 #3
Du opretter en instans "MK_Hotel sql;", er det kaldet til din db ??
Avatar billede aslan Nybegynder
09. december 2002 - 17:12 #4
Ja.. hvis du vil have det, kan jeg også smide de 2 andre tilhørende klasser op?
Avatar billede dk_zerocool Nybegynder
09. december 2002 - 17:13 #5
det må du gerne
Avatar billede aslan Nybegynder
09. december 2002 - 17:15 #6
import java.sql.*;


class MK_Hotel
{
    final FK_ConnectDB db;
    static MK_Hotel hotel=null;

    MK_Hotel()
    {
        db = FK_ConnectDB.getInstance("jdbc:interbase://localhost/C:/hotelAdm.gdb","sysdba","masterkey");
        hotel=this;
    }   
    public void indsaetHotel(int hotelNr,String navn,String adresse)
    {
        db.insert("insert into hotels values("+hotelNr+",'"+navn+"','"+adresse+"')");

    }   
    public ResultSet hentHotel()
    {
        return db.select( "select * from hotels");
       
    }
    public void sletHotel(int nr)
    {
        db.insert("delete from hotels where hotel_no = "+nr);
    }   
    public int hotelTaeller()
    {
        int ialt=0;

        try    {

          ResultSet row = db.select( "select count(*) from hotels" );
          row.next();
          ialt = row.getInt(1);

            }
              catch( SQLException cs )
              {
                    System.out.println(cs);
              }
        return ialt;
    }    
    public static MK_Hotel getInstance()
    {
        if(hotel==null) return new MK_Hotel();
        else return hotel;
    }   
}
Avatar billede aslan Nybegynder
09. december 2002 - 17:15 #7
import java.sql.*;


public class FK_ConnectDB
{
    private static FK_ConnectDB db=null;
    private Connection con;
   
    public FK_ConnectDB( String url, String username, String password )
    {
        try
        {
            Class.forName( "interbase.interclient.Driver" );
            //Class.forName("org.gjt.mm.mysql.Driver");
            con = DriverManager.getConnection( url, username, password );
        }
        catch( ClassNotFoundException c )
        {
            System.out.println( "Kunne ikke finde driveren \n"+c );

            c.printStackTrace();
        }
        catch( SQLException cs )
        {
            System.out.println( "Kunne ikke forbinde til databasen \n"+cs );

            cs.printStackTrace();

        }
       
        db = this;
    }
    public static FK_ConnectDB getInstance(String url, String username, String password)
    {
        if(db==null) return new FK_ConnectDB(url,username,password);
        else return db;
    }
    public ResultSet select( String SQL )//SELECT
    {
        ResultSet rs = null;

        try
        {
            Statement s = con.createStatement();
            rs = s.executeQuery( SQL );
        }
        catch( SQLException sc )
        {
            System.out.println( "Fejl i QUERY \n"+sc+"\n"+SQL );

            sc.printStackTrace();
        }

        return rs;
    }

    public void insert( String SQL )//INSERT,UPDATE,DELETE
    {
        try
        {
            Statement s = con.createStatement();
            s.executeUpdate( SQL );
        }
        catch( SQLException sc )
        {
            System.out.println( "Fejl i QUERY \n"+sc+"\n"+SQL );

            sc.printStackTrace();

        }
    }
}
Avatar billede aslan Nybegynder
09. december 2002 - 17:16 #8
Den sidste klasse genbruger jeg altid når jeg arbejder med databaser....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester