1 <!-- $Id: sql.jsp 474 2011-08-21 10:48:48Z dobashi $ -->
\r
2 <!doctype html public "-//w3c//dtd html 4.0 transitional//en"
\r
3 "http://www.w3.org/tr/rec-html40/loose.dtd">
\r
4 <%@ page contentType="text/html; charset=UTF-8" %>
\r
5 <%@ include file="../common/common.jsp" %>
\r
6 <%@ page import="java.text.*" %>
\r
7 <%@ page import="com.lavans.lacoder.model.*" %>
\r
8 <%@ page import="com.lavans.lacoder.model.Attribute" %>
\r
9 <%@ page import="com.lavans.lacoder.db.*" %>
\r
13 * とりあえずプロバイス用に手っ取り早く。
\r
14 * 最終的にはjspをやめてファイルに直接書き出す。
\r
15 * これをベースクラスとしてインクリメンタルな開発に耐えられるように。
\r
17 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
\r
18 DecimalFormat df = new DecimalFormat("00");
\r
21 Entity entity = (Entity)request.getAttribute("lacoder.entity");
\r
22 Attribute attrId = entity.get(0);
\r
23 TypeManager typeMan = entity.getTypeManager();
\r
24 String tableName = entity.getTableName();
\r
25 boolean isCreateOnly =false;
\r
26 if(!StringUtils.isEmpty(request.getParameter("createOnly"))){
\r
27 // logger.info("■□□■"+ request.getParameter("createOnly"));
\r
28 isCreateOnly = Boolean.parseBoolean(request.getParameter("createOnly"));
\r
30 // logger.info("■■■■"+ request.getParameter("createOnly"));
\r
33 <%@page import="com.lavans.luz2.commons.StringUtils"%><html lang="ja">
\r
36 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
\r
37 <LINK href="red.css" rel="stylesheet" type="text/css">
\r
39 <body text="#000000" leftmargin="10" topmargin="10" marginwidth="10" marginheight="10">
\r
41 <% if(!isCreateOnly){ %>DROP TABLE <%= tableName %>;<% } %>
\r
43 CREATE TABLE <%= tableName %> (
\r
45 logger.info("CREATE TABLE");
\r
46 for(int i=0; i<entity.size(); i++){
\r
47 Attribute attr = entity.get(i);
\r
48 %> <%= attr.getConstName().toUpperCase() +" "+ attr.getDbType().toUpperCase() %>, -- <%= attr.getTitle() %>
\r
50 %> CONSTRAINT <%= tableName %>_PKEY PRIMARY KEY(
\r
51 <%= StringUtils.toUnderscore(entity.getPrimaryKey()).toUpperCase() %>
\r
55 logger.info("CREATE SEQUENCE");
\r
56 for(int i=0; i<entity.size(); i++){
\r
57 Attribute attr = entity.get(i);
\r
58 if(attr.isSequence()){
\r
59 %><%= typeMan.getSequenceSql(entity) %>
\r
64 if(entity.hasBackup()){
\r
66 <% if(!isCreateOnly){ %>DROP TABLE <%= tableName %>_BAK;<% } %>
\r
68 CREATE TABLE <%= tableName %>_BAK (
\r
69 BACKUP_ID <%= typeMan.getSequenceType() %>,
\r
70 BACKUP_DELETE_DATETIME <%= typeMan.getDbType("Date") %>,
\r
72 logger.info("CREATE BACKUP TABLE");
\r
73 for(int i=0; i<entity.size(); i++){
\r
74 Attribute attr = entity.get(i);
\r
75 %> <%= attr.getConstName().toUpperCase() +" "+ attr.getDbType().toUpperCase() %>, -- <%= attr.getTitle() %>
\r
77 %> CONSTRAINT <%= tableName %>_BAK_PKEY PRIMARY KEY(
\r
78 <%= StringUtils.toUnderscore(entity.getPrimaryKey()).toUpperCase() %>
\r
80 <%= typeMan.getSequenceSql(tableName +"_BAK") %>
\r
85 logger.info("INSERT");
\r
87 for(int j=1; j<31; j++){
\r
88 %>INSERT INTO <%= tableName %> VALUES(<%
\r
89 //logger.info("INSERT");
\r
90 String officeName = entity.getName()+df.format(j);
\r
91 if(attrId.isSequence()){
\r
92 out.print(typeMan.getNextval(attrId));
\r
93 }else if(attrId.getJavaType().equals("int")){
\r
97 out.print("'"+officeName+"'");
\r
100 for(int i=1; i<entity.size(); i++){
\r
101 Attribute attr = entity.get(i);
\r
102 if(attr.getName().equals("delete_flg")){
\r
103 out.print(", false");
\r
104 }else if(attr.isEnum()){
\r
105 out.print(", '"+attr.getName()+df.format(j)+"'");
\r
106 }else if(attr.getJavaType().equals("int")){
\r
108 // out.print(", "+j);
\r
109 }else if(attr.getJavaType().equals("boolean")){
\r
110 out.print(", true");
\r
111 }else if(attr.getName().equals("pass")){
\r
112 out.print(", 'test'");
\r
113 }else if(attr.getName().equals("tel")){
\r
114 out.print(", '03-1234-5678'");
\r
115 }else if(attr.getName().equals("fax")){
\r
116 out.print(", '03-2345-6789'");
\r
117 }else if(attr.getName().equals("zip")){
\r
118 out.print(", '123-4567'");
\r
119 }else if(attr.getName().equals("url")){
\r
120 out.print(", 'http://www."+ officeName +".com'");
\r
121 }else if(attr.getName().contains("mail")){
\r
122 out.print(", 'mail"+ df.format(j)+"@"+officeName+".com'");
\r
123 }else if(attr.getName().equals("insert_date")){
\r
124 out.print(", "+ typeMan.getCurrentTime());
\r
125 }else if(attr.getName().equals("insert_user")){
\r
126 out.print(", 'SYSTEM'");
\r
127 }else if(attr.getName().equals("update_date")){
\r
128 out.print(", null");
\r
129 }else if(attr.getName().equals("update_user")){
\r
130 out.print(", null");
\r
131 }else if(attr.getJavaType().equals("Date")){
\r
132 out.print(", "+ typeMan.getCurrentTime());
\r
134 out.print(", '"+attr.getTitle()+df.format(j)+"'");
\r
138 <% if(typeMan instanceof OracleDialect) { %>/<% } %>
\r
140 } // if(!isCreateOnly)%>
\r