View Javadoc
1   package guru.mikelue.jdut.example;
2   
3   import javax.sql.DataSource;
4   
5   import guru.mikelue.jdut.jdbc.JdbcTemplateFactory;
6   import guru.mikelue.jdut.jdbc.function.DbStatement;
7   
8   /**
9    * Setup of schema for example.
10   */
11  public final class SchemaSetup {
12  	private final static String TABLE_ARTIST =
13  		"CREATE TABLE IF NOT EXISTS ex_artist(" +
14  		"	at_id IDENTITY PRIMARY KEY," +
15  		"	at_name VARCHAR(512) NOT NULL," +
16  		"	at_gender TINYINT NOT NULL DEFAULT 3," +
17  		"	at_birthday DATE" +
18  		")";
19  	private final static String TABLE_ALBUM =
20  		"CREATE TABLE IF NOT EXISTS ex_album(" +
21  		"	ab_id IDENTITY PRIMARY KEY," +
22  		"	ab_name VARCHAR(512) NOT NULL," +
23  		"	ab_release_date DATE NOT NULL," +
24  		"	ab_duration_seconds SMALLINT NOT NULL," +
25  		"	ab_type TINYINT NOT NULL DEFAULT 1," +
26  		"	ab_at_id INTEGER NOT NULL" +
27  		")";
28  
29  	private SchemaSetup() {}
30  
31  	/**
32  	 * Builds schema for database of example.
33  	 */
34  	public static void buildSchema(DataSource ds)
35  	{
36  		JdbcTemplateFactory.buildRunnable(
37  			() -> ds.getConnection(),
38  			conn -> DbStatement.buildRunnableForStatement(
39  				conn,
40  				stat -> {
41  					stat.executeUpdate(TABLE_ALBUM);
42  					stat.executeUpdate(TABLE_ARTIST);
43  				}
44  			).runJdbc()
45  		).asRunnable().run();
46  	}
47  }