Avatar billede zapzie Nybegynder
10. februar 2004 - 16:25 Der er 14 kommentarer og
1 løsning

adgang til mysql fra java-program

Nogen der kan smide et link til en tutorial eller give et eksempel på, hvordan jeg kan hente data ud fra en mysql-database og gemme nye i den, fra et java program!

Fx vil jeg gerne have den til at hente alle navne fra tabel og smide det ind i en combobox, og så skal den så slette den man vælger.

Skal nok selv finde ud af det med comboboxen, men vil gerne have hjælp til det med databasen. :)
Avatar billede arne_v Ekspert
10. februar 2004 - 16:27 #1
Database adgang fra Java er helt standardiseret via et interface kaldet JDBC.
Avatar billede arne_v Ekspert
10. februar 2004 - 16:28 #2
Avatar billede arne_v Ekspert
10. februar 2004 - 16:30 #3
De 2 MySQL specifiukke ting du skal angive er:

driver navn som skal være "com.mysql.jdbc.Driver"

database URL som skal være "jdbc:mysql://dinserver/dindatabase"
Avatar billede arne_v Ekspert
10. februar 2004 - 16:32 #4
OK ?
Avatar billede zapzie Nybegynder
10. februar 2004 - 16:35 #5
Ja, jeg prøver lige at kigge på det. Ser nu lidt inviklet ud!
Avatar billede arne_v Ekspert
10. februar 2004 - 16:40 #6
Ikke så svært igen.

Og når du har lært lidt JDBC så kan du bruge en hvilken som helst database
fra dit Java program.
Avatar billede zapzie Nybegynder
10. februar 2004 - 17:31 #7
skal man installere en driver eller noget ?
Avatar billede zapzie Nybegynder
10. februar 2004 - 17:46 #8
nå .. fandt den fil jeg skulle bruge :)
Avatar billede zapzie Nybegynder
10. februar 2004 - 18:42 #9
Tja, det virker jo fint!

Men kan du hjælpe med en ting mere?

public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == slet)
        {
            String navn = (String)navne.getSelectedItem();
            StringTokenizer idToken = new StringTokenizer(navn, ".");
            int id = Integer.parseInt(idToken.nextToken());
            sletBruger(id);
           
        }
    }

public void sletBruger(int id) throws Exception
    {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://**/**";
        Connection conn = DriverManager.getConnection(url, "**", "**");
        Statement stmt = conn.createStatement();
        String query = "DELETE FROM medlemmer WHERE id = " + id;
        stmt.executeQuery(query);
    }

det vil den ikke helt!
den skriver:
unreported exception java.lang.Exception; must be caught or declared to be thrown

Har du en ide til hvordan jeg fixer dette?
Avatar billede zapzie Nybegynder
10. februar 2004 - 18:43 #10
og den peger op på sletBruger(id);
Avatar billede arne_v Ekspert
10. februar 2004 - 20:04 #11
sletBruger har en throws Exception og den vil actionPerformed ikke acceptere.

Forslag:

    public void sletBruger(int id)
    {
      try {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://**/**";
        Connection conn = DriverManager.getConnection(url, "**", "**");
        Statement stmt = conn.createStatement();
        String query = "DELETE FROM medlemmer WHERE id = " + id;
        stmt.executeQuery(query);
      } catch (Exception ex) {
        System.out.println("Ooops: " + ex);
      }
    }
Avatar billede zapzie Nybegynder
10. februar 2004 - 20:20 #12
Tak, nu kan jeg da kopilere det, men den skriver følgende:

Ooops: java.sql.SQLException: Can not issue data manipulation statements with executeQuery()
Avatar billede zapzie Nybegynder
10. februar 2004 - 20:37 #13
der skulle stå:
stmt.executeUpdate(query);

istedet for:
stmt.executeQuery(query);
Avatar billede arne_v Ekspert
10. februar 2004 - 20:38 #14
Ja - det er rigtigt - executeUpdate til INSERT/UPDATE/DELETE og executeQuery
til SELECT.
Avatar billede zapzie Nybegynder
10. februar 2004 - 21:00 #15
Yes .. mange tak for hjælpen!
Og du havde jo ret, det var ikke så svært igen! :)
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