214 lines
6.4 KiB
Java
214 lines
6.4 KiB
Java
|
|
package com.util;
|
||
|
|
|
||
|
|
import java.util.HashMap;
|
||
|
|
import java.util.Map;
|
||
|
|
import java.util.regex.Matcher;
|
||
|
|
import java.util.regex.Pattern;
|
||
|
|
|
||
|
|
import com.chaoran.entiry.SelfCheckBox;
|
||
|
|
import com.chaoran.entiry.SelfEditText;
|
||
|
|
import com.chaoran.entiry.SelfTextBut;
|
||
|
|
import com.chaoran.imp.InputInterface;
|
||
|
|
|
||
|
|
import android.view.View;
|
||
|
|
import android.widget.RelativeLayout;
|
||
|
|
import android.widget.TabHost;
|
||
|
|
import android.widget.TextView;
|
||
|
|
|
||
|
|
public class SqlUtil {
|
||
|
|
public static HashMap regSql(String sql, TabHost layout, Map pageMap) {
|
||
|
|
System.out.println("------------------===============================");
|
||
|
|
// System.out.println(sql);
|
||
|
|
// String regEx=":[\\w|.]*[\\s]{0}";
|
||
|
|
String regEx = "[:|\\&]([\\w\\.]+)";
|
||
|
|
Pattern p = Pattern.compile(regEx);
|
||
|
|
Matcher m = p.matcher(sql);
|
||
|
|
String paramName = null;
|
||
|
|
String oldParam = null;
|
||
|
|
HashMap paramMap = new HashMap();
|
||
|
|
String paramValue = null;
|
||
|
|
String sqlCopy = sql;
|
||
|
|
String paramType = null;
|
||
|
|
while (m.find()) {
|
||
|
|
oldParam = m.group();
|
||
|
|
System.out.println(oldParam+"--------------------");
|
||
|
|
paramType = oldParam.substring(0, 1);
|
||
|
|
paramName = oldParam.toUpperCase();
|
||
|
|
if (paramName.indexOf("MX.") > -1) {
|
||
|
|
paramName = paramName.substring(4, paramName.length());
|
||
|
|
} else if (paramName.indexOf("HZ.") > -1) {
|
||
|
|
paramName = paramName.substring(4, paramName.length());
|
||
|
|
} else {
|
||
|
|
paramName = paramName.substring(1, paramName.length());
|
||
|
|
}
|
||
|
|
sqlCopy = sqlCopy.replaceFirst(oldParam,
|
||
|
|
paramType.concat(paramName));
|
||
|
|
View view = layout.findViewWithTag(paramName);
|
||
|
|
if (view != null) {
|
||
|
|
// if (view instanceof SelfEditText) {
|
||
|
|
// paramValue = ((SelfEditText) view).getText().toString()
|
||
|
|
// .trim();
|
||
|
|
// } else if (view instanceof SelfCheckBox) {
|
||
|
|
// SelfCheckBox sfb = (SelfCheckBox) view;
|
||
|
|
// boolean b = sfb.isChecked();
|
||
|
|
// if (b) {
|
||
|
|
// paramValue = "是";
|
||
|
|
// } else {
|
||
|
|
// paramValue = "否";
|
||
|
|
// }
|
||
|
|
// } else if (view instanceof TextView) {
|
||
|
|
// paramValue = ((TextView) view).getText().toString().trim();
|
||
|
|
// }else if(view instanceof SelfTextBut){
|
||
|
|
// paramValue = ((SelfTextBut)
|
||
|
|
// view).getText().toString().trim();
|
||
|
|
// }
|
||
|
|
if (view instanceof InputInterface) {
|
||
|
|
InputInterface inView = (InputInterface) view;
|
||
|
|
paramValue = inView.getText().toString();
|
||
|
|
} else if (view instanceof SelfCheckBox) {
|
||
|
|
SelfCheckBox sfb = (SelfCheckBox) view;
|
||
|
|
boolean b = sfb.isChecked();
|
||
|
|
if (b) {
|
||
|
|
paramValue = "是";
|
||
|
|
} else {
|
||
|
|
paramValue = "否";
|
||
|
|
}
|
||
|
|
} else if (view instanceof TextView) {
|
||
|
|
paramValue = ((TextView) view).getText().toString();
|
||
|
|
}
|
||
|
|
} else if (pageMap.containsKey(paramName)) {
|
||
|
|
paramValue = pageMap.get(paramName).toString();
|
||
|
|
}
|
||
|
|
if (paramValue == null) {
|
||
|
|
paramValue = "";
|
||
|
|
} else {
|
||
|
|
paramValue = paramValue.trim();
|
||
|
|
}
|
||
|
|
if (paramType.equals(":")) {
|
||
|
|
paramMap.put(paramName, paramValue);
|
||
|
|
} else {
|
||
|
|
paramValue = paramValue.replace("$", "\\$");
|
||
|
|
sqlCopy = sqlCopy.replaceFirst(paramType.concat(paramName),
|
||
|
|
paramValue);
|
||
|
|
}
|
||
|
|
if (paramValue != null) {
|
||
|
|
paramValue = null;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
HashMap map = new HashMap();
|
||
|
|
System.out.println("============="+sqlCopy+"------------------------sqlCopy");
|
||
|
|
map.put("sql", sqlCopy);
|
||
|
|
map.put("param", paramMap);
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
public static HashMap regSql(String sql, Map item) {
|
||
|
|
// String regEx=":[\\w|.]*[\\s]{0}";
|
||
|
|
String regEx = "[:|\\&]([\\w\\.]+)";
|
||
|
|
Pattern p = Pattern.compile(regEx);
|
||
|
|
Matcher m = p.matcher(sql);
|
||
|
|
String paramName = null;
|
||
|
|
String oldParam = null;
|
||
|
|
HashMap paramMap = new HashMap();
|
||
|
|
String paramValue = "";
|
||
|
|
String sqlCopy = sql;
|
||
|
|
String paramType = null;
|
||
|
|
while (m.find()) {
|
||
|
|
oldParam = m.group();
|
||
|
|
System.out.println(oldParam + "--------------------");
|
||
|
|
paramType = oldParam.substring(0, 1);
|
||
|
|
paramName = oldParam.toUpperCase();
|
||
|
|
if (paramName.indexOf("MX.") > -1) {
|
||
|
|
paramName = paramName.substring(4, paramName.length());
|
||
|
|
} else if (paramName.indexOf("HZ.") > -1) {
|
||
|
|
paramName = paramName.substring(4, paramName.length());
|
||
|
|
} else {
|
||
|
|
paramName = paramName.substring(1, paramName.length());
|
||
|
|
}
|
||
|
|
sqlCopy = sqlCopy.replaceFirst(oldParam,
|
||
|
|
paramType.concat(paramName));
|
||
|
|
if (item.containsKey(paramName)) {
|
||
|
|
paramValue = item.get(paramName).toString();
|
||
|
|
}
|
||
|
|
if (paramType.equals(":")) {
|
||
|
|
paramMap.put(paramName, paramValue);
|
||
|
|
} else {
|
||
|
|
paramValue = paramValue.replace("$", "\\$");
|
||
|
|
sqlCopy = sqlCopy.replaceFirst(paramType.concat(paramName),
|
||
|
|
paramValue);
|
||
|
|
}
|
||
|
|
if (!paramValue.equals("")) {
|
||
|
|
paramValue = "";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
HashMap map = new HashMap();
|
||
|
|
map.put("sql", sqlCopy);
|
||
|
|
map.put("param", paramMap);
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
public static HashMap regSql(String sql, RelativeLayout layout) {
|
||
|
|
System.out.println(sql);
|
||
|
|
String regEx = "[:|\\&]([\\w\\.]+)";
|
||
|
|
Pattern p = Pattern.compile(regEx);
|
||
|
|
Matcher m = p.matcher(sql);
|
||
|
|
String paramName = null;
|
||
|
|
String oldParam = null;
|
||
|
|
HashMap paramMap = new HashMap();
|
||
|
|
String paramValue = null;
|
||
|
|
String sqlCopy = sql;
|
||
|
|
String paramType = null;
|
||
|
|
while (m.find()) {
|
||
|
|
oldParam = m.group();
|
||
|
|
paramType = oldParam.substring(0, 1);
|
||
|
|
paramName = oldParam.toUpperCase();
|
||
|
|
if (paramName.indexOf("MX.") > -1) {
|
||
|
|
paramName = paramName.substring(4, paramName.length());
|
||
|
|
} else if (paramName.indexOf("HZ.") > -1) {
|
||
|
|
paramName = paramName.substring(4, paramName.length());
|
||
|
|
} else {
|
||
|
|
paramName = paramName.substring(1, paramName.length());
|
||
|
|
}
|
||
|
|
sqlCopy = sqlCopy.replaceFirst(oldParam,
|
||
|
|
paramType.concat(paramName));
|
||
|
|
View view = layout.findViewWithTag(paramName);
|
||
|
|
if (view != null) {
|
||
|
|
if (view instanceof InputInterface) {
|
||
|
|
InputInterface inView = (InputInterface) view;
|
||
|
|
paramValue = inView.getText().toString();
|
||
|
|
} else if (view instanceof SelfCheckBox) {
|
||
|
|
SelfCheckBox sfb = (SelfCheckBox) view;
|
||
|
|
boolean b = sfb.isChecked();
|
||
|
|
if (b) {
|
||
|
|
paramValue = "是";
|
||
|
|
} else {
|
||
|
|
paramValue = "否";
|
||
|
|
}
|
||
|
|
} else if (view instanceof TextView) {
|
||
|
|
paramValue = ((TextView) view).getText().toString();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (paramValue == null) {
|
||
|
|
paramValue = "";
|
||
|
|
} else {
|
||
|
|
paramValue = paramValue.trim();
|
||
|
|
}
|
||
|
|
if (paramType.equals(":")) {
|
||
|
|
paramMap.put(paramName, paramValue);
|
||
|
|
} else {
|
||
|
|
paramValue = paramValue.replace("$", "\\$");
|
||
|
|
sqlCopy = sqlCopy.replaceFirst(paramType.concat(paramName),
|
||
|
|
paramValue);
|
||
|
|
}
|
||
|
|
if (paramValue != null) {
|
||
|
|
paramValue = null;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
HashMap map = new HashMap();
|
||
|
|
map.put("sql", sqlCopy);
|
||
|
|
map.put("param", paramMap);
|
||
|
|
return map;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|