Code Generator for Eclipse Code
Brought to you by:
hotzst
<%@ jet imports="java.util.* ch.sahits.model.* ch.sahits.model.db.* " package="ch.sahits.codegen.sql" class="SQLScriptGenerator" %> -- create SQL scripts based on the model <% BasicDataBaseTable dbt = (BasicDataBaseTable) argument; DataBaseTableIndex primaryIndex = dbt.findPrimaryIndex(); if (primaryIndex!=null){ %> -- load by primary key <% { %> select <% List fields = dbt.getFields(); for (Iterator iterator = fields.iterator(); iterator.hasNext();) { DataBaseTableField f = (DataBaseTableField) iterator.next(); %><%=f.getFieldName() %><% if (iterator.hasNext()) %>, <% }%> from <%=dbt.getTableName() %> where <% List indexFields = primaryIndex.getFields(); for (int i=0;i<indexFields.size();i++){ DataBaseTableField f = (DataBaseTableField)indexFields.get(i); %><%=f.getFieldName() %>=<% if (f.isAlphaNumeric()){ %>'<% } %>?<%=f.getFieldName() %><% if (f.isAlphaNumeric()){ %>'<% } %><% if (i<indexFields.size()-1) %> and <% } } } %> -- load all <% { %> select * from <%= dbt.getTableName()%><% List fields2 = dbt.getFields(); for (Iterator iterator = fields2.iterator(); iterator.hasNext();) { DataBaseTableField f = (DataBaseTableField) iterator.next(); %><%=f.getFieldName() %><% if (iterator.hasNext()) %>, <% }%> from <%=dbt.getTableName() %><% } %> -- load by foregin key <% { List uniques = dbt.forginKeys(); for (Iterator iterator = uniques.iterator(); iterator.hasNext();) { %> select * from <%=dbt.getTableName() %> where <% DataBaseTableIndex index = (DataBaseTableIndex) iterator.next(); List indexFields = index.getFields(); for (int i=0;i<indexFields.size();i++){ DataBaseTableField f = (DataBaseTableField)indexFields.get(i); %><%=f.getFieldName() %>=<% if (f.isAlphaNumeric()){ %>'<% } %>?<%=f.getFieldName() %><% if (f.isAlphaNumeric()){ %>'<% } %><% if (i<indexFields.size()-1) %> and <% } } } %> -- load by unique index <% { List uniques = dbt.uniqueKeys(); for (Iterator iterator = uniques.iterator(); iterator.hasNext();) { %> select * from <%=dbt.getTableName() %> where <% DataBaseTableIndex index = (DataBaseTableIndex) iterator.next(); List indexFields = index.getFields(); for (int i=0;i<indexFields.size();i++){ DataBaseTableField f = (DataBaseTableField)indexFields.get(i); %><%=f.getFieldName() %>=<% if (f.isAlphaNumeric()){ %>'<% } %>?<%=f.getFieldName() %><% if (f.isAlphaNumeric()){ %>'<% } %><% if (i<indexFields.size()-1) %> and <% } } } %> -- load by index <% { List uniques = dbt.otherKeys(); for (Iterator iterator = uniques.iterator(); iterator.hasNext();) { %> select * from <%=dbt.getTableName() %> where <% DataBaseTableIndex index = (DataBaseTableIndex) iterator.next(); List indexFields = index.getFields(); for (int i=0;i<indexFields.size();i++){ DataBaseTableField f = (DataBaseTableField)indexFields.get(i); %><%=f.getFieldName() %>=<% if (f.isAlphaNumeric()){ %>'<% } %>?<%=f.getFieldName() %><% if (f.isAlphaNumeric()){ %>'<% } %><% if (i<indexFields.size()-1) %> and <% } } } %>