Avatar billede aryan Nybegynder
13. juni 2011 - 20:22 Der er 3 kommentarer

JDBC+Mysql "select" statment.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* @author --------
*
*/
public class DB_con { //class navn.
    private Connection con; //laver en variable der hedder "con".

    public DB_con(){ //konstraktor der indholder JDBC.
        try {
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/####","root","********");
            // "con" en variable der åbner forbindelse.
            // localhost = denne maskine.
            // 3306 = port nr. som bliver benyttet.
            // #### = databases navn.
            // root = bruger navn(administrator).
            // ******* =  passworden til bruger.
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } //lukker catch.
    } //lukker konstraktoren.
   
    private Object[][] SelectStm() { //konstraktor som indholder array.
        Object key[][] = null; // object er en varaible der indholder array(array).
        try {
      Statement select = con.createStatement(); //laver en sql statment "select".
      ResultSet result = select.executeQuery("SELECT Employee_ID, F_navn, E_navn, CPR_nr, E_mail, Adresse, Ans_dato, Afdeling FROM 10it0");
      // indhohld af select statment.
     
     
      int a=0;
      while(result.next()){a = a+1;}
      while(result.previous()){}
      key = new Object[a][8];
      int i = 0; // start punkt af while.
      while (result.next()) { // process results one row at a time
        key[i][0] = result.getInt(1); //henter int(1), som er employee_ID.
        key[i][1] = result.getString(2); // F_navn.
        key[i][2] = result.getString(3); // E_navn.
        key[i][3] = result.getInt(4); //CPR_NR.
        key[i][4] = result.getString(5); //E-mail.
        key[i][5] = result.getString(6); //Adresse.
        key[i][6] = result.getString(7); //Ans_dato.
        key[i][7] = result.getString(8); //Afdeling.
        i++; //skal loop i sig.
      } //while skal lukkes.
    } catch (Exception e) {
        key = new Object[1][1];
      e.printStackTrace();
    } finally {
      if (con != null) { //når forbindelse er 0,...
        try {
          con.close(); //...lukke forbindelsen.
          return key;
    } catch (final Exception e) {
          e.printStackTrace();
    }
  }
}
 
    Object[][] a = new Object[1][1];
    a[0][0]="FEJL";
    return a;
}
   
    public Object[][] DB_sel(){ //konstruktor der indholder array.
        return SelectStm(); //retuner varialble klassen.
    } //konstruktor lukket.
   
   
    public String[] DB_sel(String A){ //konstraktor der viser column titler.
        String[] st = {"Employee_ID", "F_navn", "E_navn", "CPR_nr", "E_mail", "Adresse", "Ans_dato", "Afdeling"}; //column titler.
       
        return st; // retuner variable "st".
    } //konstruktor lukket.
}
-------------------------------------------------------------
Ovenstående kode mangler kommenter i nogle linje, som jeg er ikke sikker på, hvad de præcise gør. Er der nogen der vil sæt et par ord til de linjer. På forhånd tak. ;)
Avatar billede arne_v Ekspert
13. juni 2011 - 20:30 #1
Er de fleste af linierne uden kommentar ikke stort set selvforklarende?

Det hedder constructor eller konstruktør ikke konstraktor.

      while(result.next()){a = a+1;} // taeller antal raekker
      while(result.previous()){} // spoler tilbage til start
      key = new Object[a][8]; // allokerer 2D array

Jeg ville droppe:

      while(result.next()){a = a+1;}
      while(result.previous()){}

og bruge List<Object[]> fremfor Object[][] men det vil vaere en lidt omfattende anedring af koden.

Eller maaske endda List<X>.
Avatar billede danco Nybegynder
15. juni 2011 - 00:06 #2
Og for mig ser det også ud somom du kalder alle dine metoder for konstraktor. Det er simpelthen direkte forkert. Der er stor forskel på en metode og en constructor. Men lad nu det dette.
Jeg synes nu koden er meget godt kommenteret. Måske endda en smule FOR kommenteret.
Hvis du gider fortælle lidt om hvilke linjer du er specifikt i tvivl om, så skal jeg gerne forklare dig dem (Jeg er nu også sikker på Arne gerne vil).
Avatar billede arne_v Ekspert
08. august 2011 - 01:05 #3
Tid at faa afsluttet her?
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