package hsqldb_test; import java.sql.*; /* * dumper: create random data in the form * * name, city, from_date, to_date * */ public class dumper { public static void main(String[] args) { Connection conn; if (args == null || args.length != 1) { System.err.println("OOPS: call me with cnt as argument"); System.exit(1); } int cnt = Integer.parseInt(args[0]); try { // connect to the database Class.forName("org.hsqldb.jdbcDriver"); conn = DriverManager.getConnection( "jdbc:hsqldb:/Users/chris/prj/ddb/data/base", "sa", ""); Statement st; st = conn.createStatement(); PreparedStatement pst; // step 1: create the table st.executeUpdate("create table register (name varchar(40), city varchar(40), from_date date, to_date date)"); // step 2: insert cnt rows int i; pst = conn.prepareStatement("insert into register values (?, ?, ?, ?)"); for (i = 0; i < cnt; i++) { // TODO: come up with proper randomization: // given cnt rows to build, there should maybe // be cnt / 100000 different cities // and cnt / 10 different names or something in // that order of magnitude. // ALSO: don't forget to have some open temporal // intervals (to_date is null) pst.setString(1, "Chris"); pst.setString(2, "Mair"); pst.setDate(3, new Date(2009 - 1900, 3, 11)); pst.setDate(4, new Date(2010 - 1900, 3, 11)); pst.execute(); } // Ok, shutdown and exit st.execute("SHUTDOWN"); conn.close(); } catch (Exception e) { System.err.println("OOPS:" + e.getMessage()); System.exit(1); } } }