[Java] Connectie met DB

Pagina: 1
Acties:
  • 604 views sinds 30-01-2008
  • Reageer

  • alter88
  • Registratie: Januari 2002
  • Laatst online: 10-02 15:40
Ik heb hier al een beetje lopen rondzoeken, maar de codesamples die ik hier vind werken niet. Ook heb ik al op de jdbc site gekeken van sun, maar ook daar wordt ik niet veel wijzer van...

Ik wil via JDBC een koppeling maken naar een database. De brug maken lukt, maar de database openen niet. Op dit moment heb ik de volgende code daarvoor:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
      Statement opdracht = null; 
      Connection verbinding = null;
      String URL = "jdbc:odbc:db"; 
      String Uname = ""; 
      String Passwd = ""; 

      try 
      { 
        Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); 
      } 
      catch (Exception e1) 
      { 
        System.out.println ("JDBC/ODBC driver kan niet worden geladen"); 
        return; 
      } 
      
      try 
      { 
        verbinding = DriverManager.getConnection (URL, Uname, Passwd); 
        opdracht = verbinding.createStatement(); 
      } 
      catch (Exception e2) 
      { 
        System.err.println ("Kan geen verbinding met " + URL + " maken"); 
      } 


Ik krijg steeds heel mooi in de compiler te zien: Kan geen verbinding met jdbc:odbc:db maken.

Overige info: Het is een database gemaakt met MS Access, zonder username en pass.

[ Voor 5% gewijzigd door alter88 op 18-03-2004 22:02 ]


  • momania
  • Registratie: Mei 2000
  • Laatst online: 23:04

momania

iPhone 30! Bam!

En wat zie je als je de Exception nou eens logged?
Heb je de DB wel als ODBC db geregistreerd in windows?

Neem je whisky mee, is het te weinig... *zucht*


  • nxt
  • Registratie: November 2001
  • Laatst online: 04-02 09:36

nxt

zoals momania zegt,
doe eens
code:
1
e2.printStackTrace();

waar je Kan geen verbinding naar de console schrijft
dat zou in elk geval een duidelijkere foutmelding moeten geven

  • alter88
  • Registratie: Januari 2002
  • Laatst online: 10-02 15:40
Dit is wat ik krijg:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Kan geen verbinding met jdbc:odbc:db maken

java.sql.SQLException: [Microsoft][ODBC-stuurprogrammabeheer] De naam van de
 gegevensbron is niet gevonden en er is geen standaardstuurprogramma
 opgegeven

    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)

    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)

    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074)

    at sun.jdbc.odbc.JdbcOdbcConnection.initialize
(JdbcOdbcConnection.java:323)

    at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)

    at java.sql.DriverManager.getConnection(DriverManager.java:512)

    at java.sql.DriverManager.getConnection(DriverManager.java:171)

    at db.Frame1$verbindListener.actionPerformed(Frame1.java:61)

    at java.awt.Button.processActionEvent(Button.java:382)

    at java.awt.Button.processEvent(Button.java:350)

    at java.awt.Component.dispatchEventImpl(Component.java:3615)

    at java.awt.Component.dispatchEvent(Component.java:3477)

    at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

    at java.awt.EventDispatchThread.pumpOneEventForHierarchy
(EventDispatchThread.java:201)

    at java.awt.EventDispatchThread.pumpEventsForHierarchy
(EventDispatchThread.java:151)

    at java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:145)

    at java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:137)

    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)


Ik probeer eerst eens met een ODBC koppeling, ik dacht dat dat bij JDBC namelijk niet nodig was...?

[ Voor 4% gewijzigd door alter88 op 18-03-2004 22:03 ]


  • momania
  • Registratie: Mei 2000
  • Laatst online: 23:04

momania

iPhone 30! Bam!

alter88 schreef op 18 maart 2004 @ 18:19:
Ik probeer eerst eens met een ODBC koppeling, ik dacht dat dat bij JDBC namelijk niet nodig was...?
Je roept je DB alleen maar aan via een naam, nml: jdbc:odbc:db
Als je wilt dat je je db direct kan openen zonder odbc registratie zal je de db als file moeten benaderen. Hoe dat precies ook alweer gaat weet ik niet meer.

odbc registratie moet iig voor nu genoeg zijn om je db te benaderen

Neem je whisky mee, is het te weinig... *zucht*


  • alter88
  • Registratie: Januari 2002
  • Laatst online: 10-02 15:40
momania schreef op 18 maart 2004 @ 18:23:
[...]

Je roept je DB alleen maar aan via een naam, nml: jdbc:odbc:db
Als je wilt dat je je db direct kan openen zonder odbc registratie zal je de db als file moeten benaderen. Hoe dat precies ook alweer gaat weet ik niet meer.

odbc registratie moet iig voor nu genoeg zijn om je db te benaderen
Jep klopt, nu doet ie het wel, bedankt :D

Nu ben ik uiteraard nog zeer benieuwd hoe het gaat lukken zonder ODBC registratie, iemand? ;)

Verwijderd

Met een datasource is netter. Datasource stel je in op je server bv Tomcat

Code:

java.sql.Connection con = null;
java.sql.Statement stmt = null;
javax.naming.InitialContext context = null;

try
{
//retrieve JNDI context
context = new javax.naming.InitialContext();

javax.sql.DataSource ds = (javax.sql.DataSource) context.lookup("java:comp/env/jdbc/naamdatasource");
con = ds.getConnection();
stmt = con.createStatement();

ResultSet result = stmt.executeQuery("select veld1, veld2 from tabelx");

while (!result.next())
{
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if(con != null)
{
try
{
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
if(context != null)
{
try
{
context.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

  • alter88
  • Registratie: Januari 2002
  • Laatst online: 10-02 15:40
Verwijderd schreef op 18 maart 2004 @ 18:36:
Met een datasource is netter. Datasource stel je in op je server bv Tomcat

Code:

heel wat code... ;)
Thnx, wat je voordoet ken ik niet, en het is ook niet mijn bedoeling om het op een server te draaien, maar toch bedankt, alle beetjes helpen :) Maar ik moet nog steeds ergens de source aangeven en dat was niet de bedoeling :)

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 22:15
alter88 schreef op 18 maart 2004 @ 18:27:
[...]


Jep klopt, nu doet ie het wel, bedankt :D

Nu ben ik uiteraard nog zeer benieuwd hoe het gaat lukken zonder ODBC registratie, iemand? ;)
Voor school hadden we het ooit zo opgelost. De database is gemaakt door middel van Access. Dit is de constructor van de Database klasse. FileName is gewoon de mijndatabase.mdb file.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  public Database(String FileName)
  {
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String username = "";
    String password = "";
    String url = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ="+FileName;

    try{
      Class.forName(driver);
    } catch(Exception e) {
      error("Could not load the driver.");
    }

    try{
      con = DriverManager.getConnection (url, username, password);
      stm = con.createStatement();
    } catch(Exception e) {
      error("Unable make connection.");
    }
  }

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 21:44

Robtimus

me Robtimus no like you

Sybr_E-N schreef op 18 maart 2004 @ 20:54:
Voor school hadden we het ooit zo opgelost. De database is gemaakt door middel van Access. Dit is de constructor van de Database klasse. FileName is gewoon de mijndatabase.mdb file.
THX! Ik heb me altijd al afgevraagd hoe dat moest, en het werkt dus uitstekend!

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • alter88
  • Registratie: Januari 2002
  • Laatst online: 10-02 15:40
Sybr_E-N schreef op 18 maart 2004 @ 20:54:
[...]

Voor school hadden we het ooit zo opgelost. De database is gemaakt door middel van Access. Dit is de constructor van de Database klasse. FileName is gewoon de mijndatabase.mdb file.
Thnx maat, het werkt :D:D
Pagina: 1