2013年10月18日 星期五

java-showParameters.java 20140204

// when line (body) emply recordID, it will auto gen a unique value
// recordID is case sense
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
//import com.hr.utils.CompanyProfile;

public class ShowParameters extends HttpServlet {
static tableWrite2 MySql = new tableWrite2();
//CompanyProfile CompanyProfile=new CompanyProfile();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sql1 = "";
String sql2 = "";
String database="";
String USER="";
String USER_RECORDID="";
int displayIt = 0;
response.setContentType("text/html");
PrintWriter out = response.getWriter();

if (1 == 1) {
out.println("<HTML>");
out.println("<link href='css/pagetab.css' rel='stylesheet' type='text/css' />");
out.println("<link href='css/general.css' rel='stylesheet' type='text/css' />");
out.println("<link href='css/input.css' rel='stylesheet' type='text/css' />");
}
if (1 == 1) {
out.println("<BODY>");
out.println("<DIV style='display:inline-block; margin:auto; border:1px solid black; width:30px; height:10px; margin-top:30px;'>");
out.println("<INPUT style='font-size:24px; float:left; margin-top:3px; margin:auto;'  class='SaveButton' Type='button' VALUE='Save and Return' onClick='history.go(-1);return true;' >");
out.println("<script> history.go(-1);return true;</history.go(-1);return true;></script>");
out.println("</DIV><br/><br/><br/><br/>");
}


Enumeration paramNames = request.getParameterNames();

/******************************/
/* Count how many Parameters  */
/******************************/
int countFields = 0;
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
String[] paramValues = request.getParameterValues(paramName);
if (paramValues.length == 1) {
String paramValue = paramValues[0];
}
countFields++;
}

paramNames = request.getParameterNames();
String statements = "";
String field[][] = new String[countFields][];
int i = 0;
String delimiter = "";
if (1 == displayIt) {
//out.println(CompanyProfile.getCompanyName());
out.println("Paramters had get : ");
}


/******************************/
/* Create Gobal Array         */
/******************************/
int idummy=0;
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
String[] paramValues = request.getParameterValues(paramName);
String paramValue = paramValues[0];

if (paramName.indexOf("Date")>=0 || paramName.indexOf("date")>=0){
if (paramValue.trim().equals("")){
paramValue="1753-01-01";
}
}
if (1 == displayIt) {
out.println(paramName + " : " + paramValue + "<br> ");
}
String names[] = paramName.split("\\.");
field[i] = new String[6];
String getValue = "";
String fieldName = "";
String action = "";
String recordNumber = "[1]";
String tableName = "";
if (names[0].equals("_database")){ //<<================================================== dynamic database
database = paramValue;
} else if  (names[0].equals("_user")){ //<<================================================== dynamic database
USER = paramValue;

} else if  (names[0].equals("_userRecordid")){ //<<================================================== dynamic database
USER_RECORDID = paramValue;

} else {
tableName = names[0];
}
if (paramValue.length() >= 1) {
getValue = paramValue; //<<========================================================== getValue=paramValue
}

if (names.length >= 2) {
String c = names[1];
String d[] = c.split("\\[");
fieldName = d[0];
if (d.length >= 2) {
recordNumber = "[" + d[1];
}
}
if (fieldName.equals("_action")) { //<<==============================================when fieldName = _action
if (getValue.equals("x")) {
action = "Delete";
} else {
action = "Update";
}
}
if (fieldName.equals("recordID") && getValue.equals("")){
Long UniqueNum = System.currentTimeMillis();
++idummy;
getValue=String.valueOf(UniqueNum+idummy);
}
field[i][0] = tableName;
field[i][1] = fieldName;
field[i][2] = recordNumber;
field[i][3] = getValue;
field[i][4] = action;
field[i][5] = database;
String c = tableName + recordNumber;
//out.println("c : "+c);
//out.println("fieldName : "+fieldName+" getValue "+getValue+"<br/>");
if (recordNumber.isEmpty()) {
c = tableName;
}
//int j = statements.indexOf(c);
if ((!tableName.equals("")) & statements.indexOf(c) < 0) {
statements = statements + delimiter + c;
delimiter = ",";
} // find out how many statement should made
i++;
} //eofWhile


/******************************/
/* Pre making SQL Statement   */
/******************************/

if (1 == displayIt) {
out.println("Database "+database);
out.println("Statement Require : "+statements);
}
// prepare statements by array
String Splits[] = statements.split(",");
String[][] prepareStatement = new String[Splits.length][];
for (int j = 0; j < Splits.length; j++) { // there are 6 part in the statement
prepareStatement[j] = new String[9];
prepareStatement[j][0] = Splits[j]; //
prepareStatement[j][1] = ""; // table
prepareStatement[j][2] = ""; // field
prepareStatement[j][3] = ""; // value
prepareStatement[j][4] = ""; // action
prepareStatement[j][5] = ""; // where
prepareStatement[j][6] = ""; // recordID
prepareStatement[j][7] = ""; // update =
prepareStatement[j][8] = ""; // Database
}


/******************************/
// Make statement for update  */
/******************************/

// from the satement need detail's find it by :  prepareStatement[k][0].equals(field[j][0] + field[j][2]))
for (int j = 0; j < field.length; j++) {
for (int k = 0; k < prepareStatement.length; k++) { // locate for the statement
if (prepareStatement[k][0].equals(field[j][0] + field[j][2])) {
int l = prepareStatement[k][1].length();
if (field[j][1].equals("_action")) {
//20131217 prepareStatement[k][3] = field[j][4]; // action not suitable in value segment
prepareStatement[k][4]= field[j][4]; //20131218
} else if (field[j][1].equals("_database")) {
prepareStatement[k][8] = field[j][5];

} else if (field[j][1].equals("Datetimer")) {
prepareStatement[k][4] = field[j][4] + "=" + "'"
+ field[j][3] + "'";
prepareStatement[k][5] = field[j][3];
} else if (field[j][1].equals("recordID") || field[j][1].equals("RECORDID")) {
prepareStatement[k][6] = field[j][3];
//prepareStatement[k][6] = "TEST kEY";
} else {
if (l == 0) {
delimiter = "";
} else {
delimiter = " ~";
}
prepareStatement[k][1] = field[j][0];
prepareStatement[k][2] = prepareStatement[k][2] + delimiter + field[j][1];
prepareStatement[k][3] = prepareStatement[k][3] + delimiter + "'" + field[j][3] + "'";
prepareStatement[k][4] = prepareStatement[k][4] + delimiter + field[j][4];
prepareStatement[k][5] = "recordID";
}
}
}
}

for (int j = 0; j < prepareStatement.length; j++) {

prepareStatement[j][2]=prepareStatement[j][2]+"~user"
+"~user_RECORDID";
prepareStatement[j][3]=prepareStatement[j][3]+"~'"+USER+"'"
+"~'"+USER_RECORDID+"'";



if (1 == displayIt) {
out.println("<br><br><br><br>");
out.println("table 1: " + prepareStatement[j][1] + "<br>"
+ "<br>");
out.println("field 2: " + prepareStatement[j][2] + "<br>"
+ "<br>");
out.println("value 3: " + prepareStatement[j][3] + "<br>"
+ "<br>");
out.println("where 5: " + prepareStatement[j][5] + "<br>"
+ "<br>");
out.println("key 6:- " + prepareStatement[j][6] + "<br>"
+ "<br>");
}
MySql.db=database;
MySql.table = prepareStatement[j][1];
MySql.key = "";

//if (prepareStatement[j][2].indexOf("RECORDID")>=0) {
if (prepareStatement[j][2].equals("RECORDID")) {
MySql.fields = prepareStatement[j][2];
MySql.values = prepareStatement[j][3];
} else {
if (prepareStatement[j][6].equals("")){
Long UniqueNum = System.currentTimeMillis();
prepareStatement[j][6]=String.valueOf(UniqueNum+j);
}
MySql.fields = "recordID," + prepareStatement[j][2];
MySql.values = prepareStatement[j][6] + "~" + prepareStatement[j][3];
}

out.println(" Action : +++++++++++++++++++++++++++++++++ "+prepareStatement[j][4]+ "<br>");
MySql.action = prepareStatement[j][4];
MySql.key = "";

/******************************/
// Make Variable for MySql    */
/******************************/

sql1 = MySql.go();
out.println(sql1);
MySql.fields = prepareStatement[j][2];
MySql.values = prepareStatement[j][3];
MySql.key = "recordID";
MySql.value = prepareStatement[j][6];
MySql.format = "S";
sql2 = MySql.go();
out.println(sql2);
MySql.key = ""; // 20130917
}
if (displayIt == 0) {
out.println("<script>window.onload = function () {history.go(-1);return true;  }</script>");
}
out.println("</BODY>");
out.println("</HTML>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

沒有留言:

張貼留言