Avatar billede banielsen Nybegynder
10. august 2004 - 00:59 Der er 3 kommentarer og
1 løsning

Problem med at hente database (Access) direkte fra Java

Hej

Jeg har et problem med at få fat i min database direkte fra Java, min kode er som følger:

************START***************
// Beskrivelse: Abstract klasse DB der kan nedarves til alle
//database-klasser der skal gemmes objekter af.

import java.sql.*;

public abstract class DB
{
    protected Connection con;  // connection til aktuelle DB
    protected Connection con2;
    protected String FilmDB;
    protected String FilmDBKunFilm;

    protected DB (String FilmDB, String FilmDBKunFilm)    throws Exception
    {
        //navnene på de to databaser
        this.FilmDB = FilmDB;
        this.FilmDBKunFilm = FilmDBKunFilm;
       
    //laver String til at installere driver med
    //String DBstr      = "jdbc:odbc:" + FilmDB;
    //String DBstr2      = "jdbc:odbc:" + FilmDBKunFilm;

    if (con == null) //hvis der ikke er oprettet en forbindelse gøres dette
    {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
           
            String db1 = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=FilmDB.mdb";
        String db2 = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=FilmDBKunFilm.mdb";
       
                con = DriverManager.getConnection(db1, "", "");
        con2 = DriverManager.getConnection(db2, "", "");
    }
    }


    //returnerer "kontaktet" til DB
    public Connection getCon ()
    {
        return con;
    }
   
    public Connection getCon2 ()
    {
        return con2;
    }
}

Nogen forslag til hvorfor det ikke virker.
(skal lige siges at det virker fint hvis jeg sætte databasen op i Windows)
Avatar billede simonvalter Praktikant
10. august 2004 - 01:31 #1
Hvad får du af fejl.
Det virker fint her du skal sørge for at din database.mdb ligger i i din project rod sikkert samme med en project fil som jbuilder, intellij olign laver.

ellers skal ud bruge en fast sti som DBQ=C:\FilmDBKunFilm.mdb


det virker mig iøvrigt lidt mærkeligt at du bruger flere databaser... hvorfor ikke bruge flere tabeller og 1 database.


jeg er iøvrigt ikke helt sikker på at der er noget formål i at lave constructoren for den abstrakte klasse protected, men det kan være jeg er lidt for træt ;)
du bruger iøvrigt slet ikke constructoren.
Avatar billede simonvalter Praktikant
10. august 2004 - 01:39 #2
det jeg tænker med den protectede constructor er at du aligevel ikke kan lave en instans af en abstrakt klasse .. så det betyder ikke at kun klasser der nedarver eller er i samme pakke kan lave en instans.

Og constructoren bliver ikke nedarvet.. så der tjener det heller ikke noget formål.
Avatar billede banielsen Nybegynder
10. august 2004 - 10:21 #3
Jeps, så virker det... skulle bare ligge en fast sti ind som du sagde.
mht. de andre kommentare, så tusind tak for dem :-), grunden er (i de fleste tilfælde) at det er noget gammelt kode, som jeg lavede lige dengang jeg startede med at programmere Java:-)

Men... bare kom med et svar, så får du dine point:-)
Avatar billede simonvalter Praktikant
10. august 2004 - 16:04 #4
ok
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