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 <%
}
}
}
%>