/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
jdbc og Java
Fra : Mathias Mejborn


Dato : 21-04-06 15:48

Hej gruppe.

Jeg sidder og skal have oprettet forbindelse til en postgresql database fra.

Indtil videre har jeg skrevet følgende:

import java.sql.*;

public class login{
   public static void main(String args[]) throws Exception{
   
   //Henter driveren og opretter forbindelse
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
   String url ="jdbc:postgresql://postgresql.domæne.dk";
   Connection con = DriverManager.getConnection(url,"navn","kode");
   Statement stmt = con.createStatement();
   
   //Opret tabeller - almindelige statements der kompileres
   stmt.executeUpdate("Create Table Sells "+
      "(bar varchar(40), beer varchar(40), price real)" ); //eksempel 1
   stmt.executeUpdate("Insert into Sells "+
      "(values ('Bar of Foo', 'BudLite',2.00)");
   String sqlString = "Create Table Bars "+
      "(name Varchar(40), adress varchar(80), license int)";
   stmt.executeUpdate(sqlString); //eksempel 2
   
   //prepared statements, dvs. statements som er "forberedt" til udførelse
   //og dermed kan udføres hurtigere. Kan tage parametre ( angivet ved ?).
   //som almindelig jdbc-statement inklusiv en kompileret SQL-sætning.
   PreparedStatement preparedUpdatePrice;
   String ppString = "Update Sells Set price=? Where var=? and beer=?";
      preparedUpdatePrice = con.prepareStatement(ppString);
   //Her sættes de manglende parametre.
   preparedUpdatePrice.setInt(1,3); //første spørgsmålstegn.
   preparedUpdatePrice.setString(2,"Bar of Foo"); //Andet spørgsmålstegn.
   preparedUpdatePrice.setString(3,"BudLite"); //Tjredje spørgsmålstegn.
   int n=preparedUpdatePrice.executeUpdate();
   System.out.println("antal rækker opdateret er=" + n);
   
   //lukker forbindelser i den rigtige rækkefølge.
   stmt.close();
   con.close();
}
}

Følgende linje er jeg dog i tvivl om:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();

Jeg synes at være nået frem til at man skal hente en driver ned og
sådan, men hvor skal den ligge og hvilken skal man vælge?

Jeg har hentet denne ned:
http://jdbc.postgresql.org/download/postgresql-8.1-405.jdbc3.jar

Men ved ikke om det er den rigtige, om jeg implementere den rigtigt i
min kode samt hvor jeg skal ligge driveren.

Håber der er nogen der kan hjælpe mig lidt videre.

--
Med venlig hilsen
Mathias Mejborn

 
 
Thorbjørn Ravn Ander~ (21-04-2006)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 21-04-06 16:17

Mathias Mejborn <mathias@ebsolutions.dk> writes:

> Følgende linje er jeg dog i tvivl om:
>
> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();

Det er standard trylleformularen for at fyre op under Sun's JDBC-ODBC
bridge. Den har jeg aldrig brugt.

Kunsten er at placere jar-filen med driveren i din classpath, og bruge
den rigtige formular til at få fat i den og åbne forbindelsen.
Herefter er det det samme stort set uanset database.

Måske kunne du have glæde af

http://java.sun.com/docs/books/tutorial/jdbc/index.html

--
Thorbjørn Ravn Andersen


Arne Vajhøj (22-04-2006)
Kommentar
Fra : Arne Vajhøj


Dato : 22-04-06 03:33

Mathias Mejborn wrote:
> //Henter driveren og opretter forbindelse
> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
> String url ="jdbc:postgresql://postgresql.domæne.dk";
> Connection con = DriverManager.getConnection(url,"navn","kode");

> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
>
> Jeg synes at være nået frem til at man skal hente en driver ned og
> sådan, men hvor skal den ligge og hvilken skal man vælge?
>
> Jeg har hentet denne ned:
> http://jdbc.postgresql.org/download/postgresql-8.1-405.jdbc3.jar
>
> Men ved ikke om det er den rigtige, om jeg implementere den rigtigt i
> min kode samt hvor jeg skal ligge driveren.

Du anbringer den jar fil i runtime classpath.

Du ændrer til:

Class.forName("org.postgresql.Driver");

[.newInstance() bør ikke være nødvendig]

Du ændrer til:

String url ="jdbc:postgresql://dinhost/dindatabase";

Arne




Mathias Mejborn (22-04-2006)
Kommentar
Fra : Mathias Mejborn


Dato : 22-04-06 08:27

Arne Vajhøj skrev:
> Mathias Mejborn wrote:
>> //Henter driveren og opretter forbindelse
>> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
>> String url ="jdbc:postgresql://postgresql.domæne.dk";
>> Connection con = DriverManager.getConnection(url,"navn","kode");
>
>> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
>>
>> Jeg synes at være nået frem til at man skal hente en driver ned og
>> sådan, men hvor skal den ligge og hvilken skal man vælge?
>>
>> Jeg har hentet denne ned:
>> http://jdbc.postgresql.org/download/postgresql-8.1-405.jdbc3.jar
>>
>> Men ved ikke om det er den rigtige, om jeg implementere den rigtigt i
>> min kode samt hvor jeg skal ligge driveren.
>
> Du anbringer den jar fil i runtime classpath.
>
> Du ændrer til:
>
> Class.forName("org.postgresql.Driver");
>
> [.newInstance() bør ikke være nødvendig]
>
> Du ændrer til:
>
> String url ="jdbc:postgresql://dinhost/dindatabase";
>
> Arne
>
>
>
Mange tak begge to har fået det til at virke.

God weekend.

--
--
Med venlig hilsen
Mathias Mejborn

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste