A példák által használt JDBC meghajtó letölthető a MySQL hivatalos oldaláról: http://www.mysql.com/downloads/connector/j/ - a példák (egyetlen kivétellel) egyszerű Java programként futtathatók, azaz NEM web-alkalmazások. A házi- illetve (főképpen) a projekt implementálásához az egyetlen servlet-es példa szolgáltat mintát. basic: BasicSample.java: driver betöltése, kapcsolat létrehozása, lekérdezés, eredmény megmutatása. Join.java: ugyanez, több táblás lekérdezéssel. coffee: CreateCoffeTable.java: akár sémamódosító (DDL-es) SQL parancs is küldhető JDBC-n keresztül. Itt egy új táblát hozunk létre. CoffeeBatchInsert: kötegelt módosítások: beszúrások CoffeeResultSetMetaData.java: ResultSet metadata lekérése ScrollableResultSet: gördíthető ResultSet bemutatása driverManager: DriverManagerTableViewer.java: a kapcsolatot itt a DriverManager-től kérjük. A ResultSetMetaData metaadatok segítségével írjuk ki a lekérdezés eredményét. dataSource DataSourceTableViewer.java: létrehozunk egy DataSource-t és a kapcsolatot tőle kérjük. A ResultSetMetaData metaadatok segítségével kiírjuk a lekérdezés eredményét. execute: ExecuteSQL: SQL parancsértelmező, melynek paraméterként kell megadni a JDBC meghajtót (-d), felhasználónevet (-u), jelszót (-p) és végül az URL-t: pl. -d org.gjt.mm.mysql.Driver -u root -p root jdbc:mysql://localhost:3306/jdbcTest execute() metódust használ executeQuery() ill. executeUpdate() helyett, mert nem tudjuk előre, hogy lekérdezés vagy módosítás következik. parancs pl. select * from person; insert into person (firstname, lastname) values ('Máris', 'Szomszéd'); resultset: ResultSetUpdate: módosítható resultset használata con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); metaData: TypeInfo: a jdbc által szolgáltatott adattípusok tulajdonságai. JDBCMeta: egyéb, a jdbc drivertől kinyert metaadatok: szerver, verzió, stb. (!!!) egyetlen "web-es" példa: DatabaseInfoServlet: egy servlet, mely metaadatokat nyer ki a jdbc meghajtótól és azokat megmutatja. Érdekesség a DataSource kinyerése (kapcsolatobjektum-készletben résztvevő kapcsolatobjektumot szolgáltat): DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/jdbcTest"); java:comp/env/ a tomcat standard JNDI gyökere, ahol a JNDI erőforrásokat tárolja jdbc/jdbcTest a context.xml állományban bekonfigurált DataSource. Tehát a kód független lesz a DataSource konfigurációjától. FONTOS: Ez nem standard!!! Különböző Java EE szervereket különbözőképpen kell konfigurálni. Régebbi Tomcat-nél nem a META-INF/context.xml-ben, hanem a server-xml Context elemében kellett deklarálni és a web-xml-ben is kellett hivatkozni rá. A jdbc meghajtó ez esetben a tomcat lib könyvtárában kellett legyen, (webalkalmazás /lib-ben nem elég) egyébkent nem találta a driver osztályt. jndi: TestDSBind.java: a fájlrendszert használó JNDI implementáció segítségével menti le a létrehozott DataSource-t. A /JNDI/JDBC könyvtárstruktúra kell létezzen, de üres kell legyen. (második futtatásra javax.naming.NameAlreadyBoundException) Ezt a fázist (bind) az alkalmazásszerverek végzik a megadott konfigurációk alapján (lásd a servlet példát). TestDSLookup.java: beolvassa a TestDSBind-ban lementett DataSource-ot és elvégez egy lekérdezést az adatbázisból a DataSource-ból nyert kapcsolat objektummal. A példa egy filerendszerrel kommunikáló JNDI implementációt használ, mely az alábbi helyről lett letöltve: http://java.sun.com/products/jndi/downloads/index.html (lásd: fscontext-1_2-beta3.zip)