/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved. * */ import java.sql.*; public class ForeignKeysCoffees { public static void main(String args[]) { String url = "jdbc:sqlite:/path_to_db"; Connection con; String createString = "create table COFFEESFK " + "(COF_NAME varchar(32) NOT NULL, " + "SUP_ID int, " + "PRICE float, " + "SALES int, " + "TOTAL int, " + "primary key(COF_NAME), " + "foreign key(SUP_ID) references SUPPLIERSPK(SUP_ID))"; Statement stmt; try { Class.forName("SQLite.JDBCDriver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); } try { con = DriverManager.getConnection(url, "myLogin", "myPassword"); stmt = con.createStatement(); stmt.execute("PRAGMA foreign_keys = ON;"); stmt.executeUpdate("drop table if exists COFFEESFK"); stmt.executeUpdate(createString); DatabaseMetaData dbmd = con.getMetaData(); ResultSet rs = dbmd.getImportedKeys(null, null, "COFFEESFK"); while (rs.next()) { System.out.println("primary key table name: " + rs.getString("PKTABLE_NAME")); System.out.println("primary key column name: " + rs.getString("PKCOLUMN_NAME")); System.out.println("foreign key table name: " + rs.getString("FKTABLE_NAME")); System.out.println("foreign key column name: " + rs.getString("FKCOLUMN_NAME")); } stmt.executeUpdate("insert into COFFEESFK " + "values('Colombian', 00101, 7.99, 0, 0)"); stmt.executeUpdate("insert into COFFEESFK " + "values('French_Roast', 00049, 8.99, 0, 0)"); stmt.executeUpdate("insert into COFFEESFK " + "values('Espresso', 00150, 9.99, 0, 0)"); stmt.executeUpdate("insert into COFFEESFK " + "values('Colombian_Decaf', 00101, 8.99, 0, 0)"); stmt.executeUpdate("insert into COFFEESFK " + "values('French_Roast_Decaf', 00150, 9.99, 0, 0)"); rs = stmt.executeQuery("select * from COFFEESFK"); System.out.println("select * from COFFEESFK:"); while (rs.next()) { String name = rs.getString("COF_NAME"); int id = rs.getInt("SUP_ID"); float price = rs.getFloat("PRICE"); int sales = rs.getInt("Sales"); int total = rs.getInt("Total"); System.out.println(name + ", " + id + ", " + price + ", " + sales + ", " + total); } rs.close(); stmt.close(); con.close(); } catch(SQLException ex) { System.err.print("SQLException: "); System.err.println(ex.getMessage()); } } }