Avatar billede dragnor Juniormester
14. februar 2006 - 19:56 Der er 15 kommentarer og
1 løsning

SQL Resultat og Array

Er det nogen der kan give mig et eksempel på hvordan jeg hvis jeg har en database (ACCESS) hvori jeg har en SQL-sætning i får et resultat der ser sådan her ud:

Navn    Efternavn       
-------|----------
Peter  | Hansen 
--------------------     
Jens  | Jensen
--------------------
Bo    | Petersen

Hvordan gemmer jeg det SQL resultat i et array?
Avatar billede arne_v Ekspert
14. februar 2006 - 20:03 #1
det gør du ikke !

:-)

ArrayList af instanser af en Person klasse

ArrayList lst = new arrayLst();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
  lst.add(new Person(rs.getString("fornavn"),rs.getString("efternavn"));
}
Avatar billede thomaskleist Nybegynder
14. februar 2006 - 20:09 #2
Jeg har et eksempel her håber at du kan bruge det. Men det letteste vil være at bruge DTO´er

package mypackage2;
import java.sql.*;

public class VinDetaljeGateway
{
  protected FineWineConnectionBean fineWineConnectionBean5;
 
  public VinDetaljeGateway()
  {
   
  }
// from table vinDetaljeview
int varenr=0, varenavn=1,specs=2, omraadenavn=3, pris=4, aargang=5, landnavn=6, druetype=7, slagsfarve=8, qoh=9, LevNavn=10 ,Billed=11;

public String[][] visVinDetaljer(int vare_nr)
{
  String[][] visDetajler=null;
  FineWineConnectionBean db =FineWineConnectionBean.getInstance();
 
 
  try
  {
    Connection con = db.getConnection();
    Statement stmt = con.createStatement();
    System.out.println(vare_nr);
    ResultSet rsint=stmt.executeQuery("select count(*) from vinDetaljeview where varenr="+vare_nr);
    rsint.next();
    int q = rsint.getInt(1);
    visDetajler = new String[q][12];
   
    ResultSet rs = stmt.executeQuery("select * from vinDetaljeview where varenr="+vare_nr);
    int i=0;
    while(rs.next())
    {
      visDetajler[i][varenr]=rs.getString("varenr");
      visDetajler[i][varenavn]=rs.getString("varenavn");
      visDetajler[i][specs]=rs.getString("specs");
      visDetajler[i][omraadenavn]=rs.getString("omraadenavn");
      visDetajler[i][pris]=rs.getString("pris");
      visDetajler[i][aargang]=rs.getString("aargang");
      visDetajler[i][landnavn]=rs.getString("landnavn");
      visDetajler[i][druetype]=rs.getString("druetype");
      visDetajler[i][slagsfarve]=rs.getString("slagsfarve");
      visDetajler[i][qoh]=rs.getString("qoh");
      visDetajler[i][LevNavn]=rs.getString("LevNavn");
      visDetajler[i][Billed]=rs.getString("billed");
     
    }
   
  }
  catch(SQLException sql)
  {
    System.err.println("FEJL "+sql);
  }
  return visDetajler;
}
}
Avatar billede dragnor Juniormester
14. februar 2006 - 20:17 #3
puha...jeg lover at vende tilbage hustigstmuligt med information om jeres svar virkede eller ej, gik ikke ud fra at i var så hurtige på tasterne, men tak ind til videre!
Avatar billede cytg Nybegynder
15. februar 2006 - 23:10 #4
tjah, eller i et todimmensionelt String array .. men hvis det er i uddannelsessammenhæng er der sikkert point at hente i at konstruere en Person klasse!
Avatar billede arne_v Ekspert
16. februar 2006 - 04:12 #5
nok ogsaa i andre sammenhaenge ...
Avatar billede dragnor Juniormester
16. februar 2006 - 17:11 #6
tak arne v det var lige det svar jeg skulle bruge, skriv et svar og få dine point
Avatar billede arne_v Ekspert
16. februar 2006 - 17:15 #7
svar
Avatar billede ircnoob Nybegynder
13. april 2006 - 20:01 #8
Hvordan får i jeres select-statement printet ud.. altså i har den select i en database-klasse ikke, men hvordan kan i så få det printet ud i en gui-klasse ??
Avatar billede ircnoob Nybegynder
13. april 2006 - 20:51 #9
Cannot find symbol : class Person .. Hvorfor får jeg denne fejl med arne_v's kode .. ?
Avatar billede arne_v Ekspert
13. april 2006 - 20:58 #10
den skal vel vises i en JList eller lignende

----

har du lavet en Person klasse ?
Avatar billede ircnoob Nybegynder
13. april 2006 - 21:40 #11
try {
        // Create a result set containing all data from my_table
        Statement stmt = connection.createStatement();
        ArrayList lst = new ArrayList();
        ResultSet rs = stmt.executeQuery("SELECT ID, navn FROM Medlemmer WHERE navn ='" + GUI3.jTextField1.getText () + "'");  // '" + GUI3.jTextField3.getText () + "'
        ResultSetMetaData rsmd = rs.getMetaData();
        int columns = rsmd.getColumnCount();
        JTable tbl = new JTable(0, columns);
       
       
        // Fetch each row from the result set
        while (rs.next()) {
            lst.add(new Person(rs.getString(1),rs.getString(2)));
            // Get the data from the row using the column index
            String s = rs.getString(1);
            System.out.println( "ID: " + rs.getString(1) + "\tNavn: " + rs.getString(2));
            // Get the data from the row using the column name
            s = rs.getString("col_string");
            // System.out.println (s);
        } //

er det jeg har i en db-klasse .. søger egentlig blot en måde at få det vist i fx en jtable i min gui klasse ...
Avatar billede arne_v Ekspert
13. april 2006 - 22:11 #12
kan en JTable ikke addes til din content pane ?
Avatar billede ircnoob Nybegynder
14. april 2006 - 01:18 #13
æh jo sikkert.. hvad kan jeg så gøre ?
Avatar billede cytg Nybegynder
18. april 2006 - 01:38 #14
"nok ogsaa i andre sammenhaenge ..."

ja måske. hvem ved ? (ganske få gør) ..
Avatar billede arne_v Ekspert
18. april 2006 - 01:47 #15
jeg tror faktisk at de fleste steder ville man bruge en Person klasse

OO A/D/P, peer reviews etc. er trods alt blevet udbredte
Avatar billede cytg Nybegynder
19. april 2006 - 14:32 #16
det vil man ganske givet de fleste steder. ikke mindst fordi at 99% af Person klasser lever deres korte liv i realtion til uddannelse.
i sidste ende er spørgsmålet om det er dig der arbejder for værktøjskassen eller omvendt.
Det er ikke et oplæg til debat om hvorvidt objektorienteret design er en god ide, det er det, om ikke andet så for samtidig konsensus og referenceramme (samme argument som ved patterns).
Mit indspark er blot at OO ikke er gud... og du vil komme i sitationer hvor det er bedøvende, enda ligefrem at besværliggøre processen at 'objektifisere' alt og intet.

over and out!
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