· 6 years ago · Dec 03, 2019, 12:00 PM
1private static void initDatabase() {
2 Statement stmt = null;
3 try {
4 stmt = conn.createStatement();
5 [for (table : Table | aDbaseModel.tables)]
6 String sql[table.entity/] = "CREATE TABLE IF NOT EXISTS [table.entity.toUpper()/] "
7 [for (col : Column | table.columns)]
8 [if (col.key)]
9 + "[col.name.toLowerFirst()/] INTEGER auto_increment, "
10 [/if]
11[comment] [if (col.key = false)]
12 [for (fk : Column | col.foreignKey)]
13 [if (fk.type.toString() = 'INTEGER')]
14 + "[fk.name.toLowerFirst()/] INTEGER not NULL, "
15 [/if]
16 [if (fk.type.toString() = 'VARCHAR')]
17 + "[fk.name.toLowerFirst()/] VARCHAR(255) not NULL, "
18 [/if]
19 [if (fk.type.toString() = 'REAL')]
20 + "[fk.name.toLowerFirst()/] DOUBLE not NULL, "
21 [/if]
22 [/for]
23 [/if][/comment]
24 [for (ent : Entity | getDomainModel(aDbaseModel).entities)]
25 [if (ent.name = table.entity)]
26 [for (field : Field | ent.fields)]
27 [if (field.name.contains('Id') = false and field.name.contains('List') = false)]
28 [if (field.type.toString() = 'INTEGER')]
29 + "[field.name/] INTEGER, "
30 [/if]
31 [if (field.type.toString() = 'STRING')]
32 + "[field.name/] VARCHAR(255), "
33 [/if]
34 [if (field.type.toString() = 'REAL')]
35 + "[field.name/] DOUBLE, "
36 [/if]
37 [/if]
38 [/for]
39 [/if]
40 [/for]
41 [/for]
42 + " PRIMARY KEY ( "
43 [for (col : Column | table.columns)]
44 [if (col.key)]
45 + "[col.name.toLowerFirst()/] ), "
46 [/if]
47 [/for]
48 ;
49 sql[table.entity/] = sql[table.entity/].substring(0, sql[table.entity/].length()-2);
50 sql[table.entity/] = sql[table.entity/] + ")";
51 stmt.executeUpdate(sql[table.entity/]);
52 [/for]
53 stmt.close();
54 } catch (SQLException se) {
55 // Handle errors for JDBC
56 se.printStackTrace();
57 } catch (Exception e) {
58 e.printStackTrace();
59 } finally {
60 // finally block used to close resources
61 try {
62 if (stmt != null)
63 stmt.close();
64 } catch (SQLException se2) {
65 se2.printStackTrace();
66 } // nothing we can do
67 } // end try
68 }