# Zugriff mit DataSource



## jupp61 (2. Dez 2007)

Hallo,
bisher habe ich die Verbindung zur Datenbank über DriveManager vorgenommen. Jetzt habe ich gelesen, dass man das eigentlich über DataSource vornehmen soll.

Beispiel 

```
VendorDataSource vds = new VendorDataSource();
    vds.setServerName("my_database_server");
    vds.setDatabaseName("my_database");
    vds.setDescription("the data source for inventory and personnel");
    Context ctx = new InitialContext();
    ctx.bind("jdbc/AcmeDB", vds);
..

    Context ctx = new InitialContext();
    DataSource ds = (DataSource)ctx.lookup("jdbc/AcmeDB");
    Connection con = ds.getConnection("genius", "abracadabra");
    con.setAutoCommit(false);
    PreparedStatement pstmt = con.prepareStatement(
                            "SELECT NAME, TITLE FROM PERSONNEL WHERE DEPT = ?");
    pstmt.setString(1, "SALES");
    ResultSet rs = pstmt.executeQuery();

    System.out.println("Sales Department:");
    while (rs.next()) {
        String name = rs.getString("NAME");
        String title = rs.getString("TITLE");
        System.out.println(name + "     " + title);
    }
    pstmt.setString(1, "CUST_SERVICE");
    ResultSet rs = pstmt.executeQuery();

    System.out.println("Customer Service Department:");
    while (rs.next()) {
        String name = rs.getString("NAME");
        String title = rs.getString("TITLE");
        System.out.println(name + "     " + title);
    }
    rs.close();
    pstmt.close();
    con.close();
```


Welche Klassen muss man hier importieren? z.B. läuft gleich die erste Codezeile auf Fehler w/ VendorDataSource.

Ich nutze MySQL.

Vielen Dank
Jupp


----------



## Alex_winf01 (2. Dez 2007)

es sollte minimum ein 
	
	
	
	





```
import sql.*;
```
 stattfinden.


----------



## jupp61 (2. Dez 2007)

Hallo,
daran wird es nicht liegen. Ich habe folgende import's


```
import java.sql.Connection;
import java.sql.DriverManager; 
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
```

Auch java.sql.* hilft nicht für den Fehler w/ notfound VendorDataSource().

Jupp


----------



## maki (2. Dez 2007)

Wie kommst du auf die Klasse "VendorDataSource"?

Hört sich so generisch an, als ob es aus einem allgemeinen Beispiel stammt


----------



## Alex_winf01 (2. Dez 2007)

Ich vermute mal, dass es da eine Klasse 
	
	
	
	





```
VendorDataSource
```
 gibt, dann muss man diese auch importieren:

```
import VendorDataSource
```

Probier es mal aus.


----------



## jupp61 (2. Dez 2007)

Hallo,
ja sicher, der Verdacht, dass es ein generische Bsp ist, stimmt schon.

Quelle: java SE 6 documentation

Trotzdem: wie kann man denn über den Weg eine Verbindung zur Datenbank herstellen?

DB ist MySQL.

Gruß
Jupp


----------



## ms (2. Dez 2007)

jupp61 hat gesagt.:
			
		

> Quelle: java SE 6 documentation


Hast du einen Link?

edit:
Wenn ich richtig liege, dann handelt es sich um diesen Artikel (Ptk 4.1.3) http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/getstart/datasource.html.
Da steht dabei, dass der folgende Code (von dir gepostet Zeile 2 bis 7 - konfigurieren und bereitstellen der DataSource im JNDI-Tree) nicht vom User (der Anwendungsentwickler - der der die Datenbank benutzt - also du) sondern vom Administrator gemacht wird.

ms


----------



## maki (3. Dez 2007)

> Hallo,
> ja sicher, der Verdacht, dass es ein generische Bsp ist, stimmt schon.
> 
> Quelle: java SE 6 documentation
> ...


Nun ja, wenn du ein allgemeines Beispiel nimmst, musst du natürlich die allgemeinen Dinge (zB. VendorDataSource gibt's nicht, ist nur ein Beispiel, wie der Name schon sagt  ) durch konkrete ersetzen.

MysqlConnectionPoolDataSource ist eine der DS die es bei MySQL gibt.

Wenn du googelst, findst du hunderttausende Beispiele für MySQL.


----------

