30.11.2012 Aufrufe

Name - FH Aachen

Name - FH Aachen

Name - FH Aachen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

3-schichtige Informationssystem-Architektur<br />

• plattformunabhängig<br />

• beliebige Endgeräte<br />

• Client als Applikation<br />

bzw. als Applet<br />

hier einfach Dateisystem<br />

des PCs<br />

jetzt: DB-Anschluss<br />

OOS<br />

Prof. Dr. H. Faßbender<br />

DB-Anschluss 1<br />

• plattformunabhängig<br />

• objektorientierte Architektur Server: Anwendungslogik<br />

strukturierte Daten


Java-Abbild von DB-Inhalten<br />

Java<br />

DB<br />

name: String<br />

email: String<br />

password: String<br />

…<br />

users<br />

<br />

User<br />

OOS<br />

User u = new User();<br />

Prof. Dr. H. Faßbender<br />

DB-Anschluss 2<br />

u.set<strong>Name</strong>(„Heinz Fassbender“)<br />

u.setEmail(„fassbender@fh-aachen.de“)<br />

u.setPassword(„geheimer“)<br />

name email password<br />

Heinz Fassbender fassbender@fh-aachen.de geheim<br />

… … …


Ablauf einer SQL-Anfrage<br />

Anwendung DataSource<br />

getConnection()<br />

Connection<br />

createStatement()<br />

Statement<br />

><br />

Connection<br />

><br />

executeQuery("SELECT name FROM users")<br />

ResultSet<br />

next()<br />

true<br />

getString("username")<br />

username<br />

next()<br />

false<br />

Statement<br />

><br />

OOS<br />

Prof. Dr. H. Faßbender<br />

DB-Anschluss 3<br />

ResultSet


Absetzen von SQL-Statements allg.<br />

OOS<br />

Prof. Dr. H. Faßbender<br />

DB-Anschluss 4<br />

DataSource dataSource = … //siehe Folie 6<br />

Connection connection;<br />

try {<br />

connection = dataSource.getConnection();<br />

Statement statement = connection.createStatement();<br />

ResultSet resultSet = statement.executeQuery(„SQL“);<br />

while(resultSet.next()) {<br />

}<br />

/* ResultSet verarbeiten */<br />

} finally {<br />

}<br />

if(connection != null) { connection.close(); }


Absetzen von SQL-Statements speziell<br />

users<br />

OOS<br />

Prof. Dr. H. Faßbender<br />

DB-Anschluss 5<br />

/* <strong>Name</strong>n aller gespeicherten Benutzer ermitteln */<br />

String query = „SELECT name FROM users“;<br />

ResultSet resultSet = statement.executeQuery(query)<br />

<strong>Name</strong><br />

Heinz Fassbender<br />

Till Dorschel<br />

query<br />

name email password<br />

Heinz Fassbender fassbender geheim<br />

Till Dorschel … geheimer<br />

List names = new ArrayList();<br />

while(resultSet.next()) {<br />

}<br />

String name = resultSet.getString(„name“);<br />

names.add(name);


Erstellung einer DataSource<br />

OOS<br />

Prof. Dr. H. Faßbender<br />

DB-Anschluss 6<br />

• Datenquelle zentrale Schnittstelle für Connection-Handling<br />

• Konfig wichtig, da sonst Performance Engpass<br />

• Verwendung von „pooled“ DataSource<br />

– nicht für jede Anfrage neue DB-Verbindung<br />

– sondern Verwaltung eines Pools von DB-Verbindungen<br />

• hier folgende primitive Verbindung als DataSource durch<br />

"jdbcDriver" für die HSQL-Datenbank<br />

BasicDataSource dataSource = new BasicDataSource();<br />

dataSource.setDriverClass<strong>Name</strong>(jdbcDriver.class.get<strong>Name</strong>());<br />

dataSource.setUrl("jdbc:hsqldb:mem:TestSpeicherDB");<br />

dataSource.setUsername("sa");<br />

dataSource.setPassword("");

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!