Avatar billede sierradriver Nybegynder
03. april 2005 - 10:29 Der er 5 kommentarer og
1 løsning

Database forbindelse

Hej eksperter

Jeg har brug for en lille guide til hvordan jeg bedst muligt, kalder en database forbindelse fra en klasse, eks. "Database"
til en klasse "Funktion" sådan så metoderne i "Funktion" kan lave et recordset og behandle dette som det nu skal?
Avatar billede arne_v Ekspert
03. april 2005 - 10:44 #1
Database laver vel en instans af Funktion og kalder metoderne i denne !?!?
Avatar billede arne_v Ekspert
03. april 2005 - 10:44 #2
Men du får lige et eksempel som måske kan give dig lidt ideer:

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

public class SimpleDBGUI2 extends JFrame implements ActionListener {
    private JButton find;
    private JTextField crit;
    private JTextArea res;
    private DBHandler db;
    public SimpleDBGUI2() {
        getContentPane().setLayout(new BorderLayout());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 400);
        crit = new JTextField();
        getContentPane().add(crit, BorderLayout.NORTH);
        res = new JTextArea();
        getContentPane().add(res, BorderLayout.CENTER);
        find = new JButton("Søg");
        find.addActionListener(this);
        getContentPane().add(find, BorderLayout.SOUTH);
        db = new DBHandler("TestMSAccess", "Admin", "");
    }
    public void actionPerformed(ActionEvent evt) {
      res.setText("");
      ArrayList lst = db.getAll(crit.getText());
      for(int i = 0; i < lst.size(); i++) {
        res.setText(res.getText() + lst.get(i) + "\r\n");
      }
    }
    public static void main(String[] args) {
        SimpleDBGUI2 f = new SimpleDBGUI2();
        f.show();
    }
}

class DBHandler {
  private Connection con;
  private Statement stmt;
  public DBHandler(String dsn, String usr, String pwd) {
      try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con = DriverManager.getConnection("jdbc:odbc:" + dsn, usr, pwd);
        stmt = con.createStatement();
      } catch (ClassNotFoundException e) {
        e.printStackTrace();
      } catch (SQLException e) {
        e.printStackTrace();
      }
  }
  public ArrayList getAll(String crit) {
      ArrayList res = new ArrayList();
      try {
        ResultSet rs = stmt.executeQuery("SELECT * FROM t1 WHERE f2 LIKE '" + crit + "'");
        while (rs.next()) {
            res.add(new Record(rs.getInt(1), rs.getString(2)));
        }
        rs.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
      return res;
  }
}

class Record {
  private int f1;
  private String f2;
  public Record() {
      f1 = 0;
      f2 = "";
  }
  public Record(int f1, String f2) {
      this.f1 = f1;
      this.f2 = f2;
  }
  public int getF1() {
      return f1;
  }
  public String getF2() {
      return f2;
  }
  public void setF1(int f1) {
      this.f1 = f1;
  }
  public void setF2(String f2) {
      this.f2 = f2;
  }
  public String toString() {
      return (f1 + " " + f2);
  }
}
Avatar billede sierradriver Nybegynder
03. april 2005 - 16:33 #3
Tror jeg har fattet det nu, og fået det til at virke.

Smid et svar
Avatar billede arne_v Ekspert
03. april 2005 - 16:44 #4
kommer her
Avatar billede arne_v Ekspert
26. april 2005 - 00:27 #5
så mangler du bare at acceptere
Avatar billede sierradriver Nybegynder
11. juni 2005 - 12:19 #6
Uuuups, sorry, har ikke været så aktiv på E siden det spørgsmål, så har helt glemt alt om det...
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