Avatar billede mholst Nybegynder
25. november 2002 - 11:01 Der er 10 kommentarer

Hvordan får vi lagt data ind på databasen?

Så er vi tilbage!

Vi har fået kontakt med vores server, men hvordan får vi data ind på databasen?
Vi har læst os frem til noget sqlkode, med create, hver række i vores tabeller skal have et unikt id, så vi senere kan krydsrefere mellem tre forskellige tabeller.

VIl det være fornuftigt design, at oprette en klasse hvori vi udelukkende opretter tabellerne.
Den kode vi har brugt indtil nu, ser sådan her ud:

CREATE TABLE Profiler (id int not null auto_increment, primary key(id), title varchar(255), place varchar(255) );
Avatar billede arne_v Ekspert
25. november 2002 - 11:09 #1
Jeg tror det mest almindelige er at man:
  - opretter sine tabeller via et database
    værktøj
  - kune bruger Java & JDBC til at manipulere data

Men det kan godt lade sig gøre at oprette tabeller
fra Java & JDBC.

En separat klasse lyder i det tilfælde som en gode
ide. Måske endda en separat applikation.
Avatar billede mholst Nybegynder
25. november 2002 - 11:13 #2
Vi bliver nok lige nød til at få det forklaret lidt nærmere! :)
Evt. med et kodeeksempel..
Liger JDBC ikke i sql.. Altså når vi har importeret java.sql*
Vi troede egenligt at java forstod sql koden... men gør den det?
Avatar billede arne_v Ekspert
25. november 2002 - 11:18 #3
Java bruger JDBC som kan sende SQL kommandoer.

Men faktisk er det langt nemmere, at ændre
noget end det er at hente noget.

Trinene er:
1)  I loader JDBC driver
2)  I connecter til databasen
3)  I creater en statement
4)  I eksekverer en SQL statement
Avatar billede arne_v Ekspert
25. november 2002 - 11:21 #4
Her er lidt kode der kan bruges til inspiration (I skal
erstatte en del strenge):

      Connection conn = null;
      Statement stmt = null;
      try {
          Class.forName("driver");
      } catch (ClassNotFoundException e) {
      }
      try {
          conn = DriverManager.getConnection("connection url",
                                            "user","password");
      } catch (SQLException e) {
      }
      try {
        stmt = conn.createStatement();
        stmt.execute("sql statement");
      } catch (SQLException e) {
      }
      stmt.close();
      conn.close();
Avatar billede mholst Nybegynder
25. november 2002 - 11:44 #5
hmm...det kan godt være at vi er lidt dumme,
Nå, men vi har connection til databasen, men forstår ikke helt hvad et statement er, da det vi forestillede os var at man i javakoden med sql-kode kan skrive en tabel og lægge på databasen, så vi derefter kan hente oplysninger ud igen ved søgning på ord. Kan man ikke det?
Avatar billede arne_v Ekspert
25. november 2002 - 12:14 #6
Eksempel på en update:

stmt.executeUpdate("CREATE TABLE Profiler (id int not null auto_increment, primary key(id), title varchar(255), place varchar(255) )");

Eksempel på query:

ResultSet rs = stmt.executeQuery("SELECT * FROM Profiler");
     
I skal så bruge det result set til at hente data fra.
Avatar billede arne_v Ekspert
25. november 2002 - 12:43 #7
Noget i retning af:

      try {
        int id;
        String title;
        String place;
        while(rs.next()) {
            id = rs.getInt("id");
            title = rs.getString("title");
            place = rs.getString("place");
        }
      } catch (SQLException e) {
      }
Avatar billede arne_v Ekspert
25. november 2002 - 12:45 #8
Avatar billede javanewbie11 Nybegynder
25. november 2002 - 22:18 #9
Jeg mener der skal bruges PreparedStatements, de er noget hurtigere!
Og kan genbruges.
Avatar billede arne_v Ekspert
26. november 2002 - 09:49 #10
Ganske rigtigt. I nogle tilfælde er der fordele
ved at bruge PrepatedStatement.
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