import java.sql.*; import java.util.*; import java.io.*; public class JDBCeksempel { static void warn( String msg, Exception e ) { System.err.println ( msg ) ; if ( e != null ) { System.err.println ( " Fikk unntak: " + e.toString ( ) ) ; System.err.println ( " Melding: " + e.getMessage ( ) ) ; System.err.println ( " Traceback: " ) ; e.printStackTrace ( System.err ) ; } } static void die ( String msg, Exception e ) { warn( msg, e ) ; System.exit ( 1 ) ; } public static Connection openConnection() { Connection con = null; /* Kode som setter ditt passord inn i variabelen passord. Gj?r det helst p? en m?te slik at passordet ikke blir liggende i klartekst. */ try { Class.forName("org.postgresql.Driver"); } catch (Exception e) { die("Fant ingen JDBC-driver", e); } Properties p = new Properties(); p.setProperty("ssl", "true"); p.setProperty("sslfactory", "org.postgresql.ssl.NonValidatingFactory"); p.put("user", "michael"); p.put("password", passord); String url = "jdbc:postgresql://dbpg-ifi-kurs.uio.no/fdb"; try { con = DriverManager.getConnection(url, p); } catch (Exception e) { die("Feil DB-URL, brukernavn eller passord", e); } return con; } public static void main (String []args) { class Film { int filmid, produksjons?r; String tittel; Film(int fi) { filmid = fi; } } ArrayList filmer = new ArrayList(); Film fm; try { Connection con = openConnection(); Statement stm = con.createStatement(); ResultSet norskeFilmer = stm.executeQuery ( "select F.filmid as fid, " +" F.title as tittel, " +" F.prodyear as paar\n" +"from film F natural join Filmcountry C " +"where C.country='Norway'"); while (norskeFilmer.next() ) { fm = new Film(norskeFilmer.getInt("fid")); fm.tittel = norskeFilmer.getString("tittel"); fm.produksjons?r = norskeFilmer.getInt("paar"); filmer.add(fm); } } catch (Exception e) { die("Noe gikk galt i sp?rring A", e); } for (Film f: filmer) { System.out.println(f.filmid); System.out.print(f.tittel); System.out.println(", produsert i " + f.produksjons?r); } } }