?? insertaction.java
字號:
package com.sunyard.dataanalyze;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class InsertAction {
// public void action(Map map) {
/* public void action(Map map , Map fieldMapping ) {
StringBuffer sql = new StringBuffer("INSERT INTO fl_flow_tb(");
StringBuffer value = new StringBuffer(" VALUES(");
StringBuffer values = new StringBuffer("");
Set keySet = map.keySet();
Set mapkeyTypeSet = PackageConstants.getFieldTypeMap().keySet();
// Map fieldMapping = PackageConstants.getFieldMapping();
Iterator it = keySet.iterator();
while (it.hasNext()) {
String param = ((String) it.next());
if (PackageConstants.getFieldMapping().containsKey(
param.toUpperCase())) {
String flowFieldName = (String) PackageConstants
.getFieldMapping().get(param.toUpperCase());// fm.getFlowField();
if (sql.toString().indexOf(flowFieldName)<0.contains(flowFieldName)) {// 當SQL語句中沒有該字段時才加入
String paramType = (String) PackageConstants
.getFieldTypeMap().get(flowFieldName);//取得字段類型
System.out.println("===paramType==="+paramType+"=====flowFieldName===="+flowFieldName);
if (paramType.indexOf("int")>=0contains("int")
|| paramType.indexOf("double")>=0.contains("double")
|| paramType.indexOf("decimal")>=0.contains("decimal")) {
String tempValue = (String) map.get(param);
//判斷是否是數(shù)字
String regEx="[0-9]+.[0-9]+";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(tempValue);
if(!m.matches())
continue;
System.out.println(tempValue);
if (flowFieldName.equalsIgnoreCase("amount"))
values.append(((new Double(tempValue))
.doubleValue() * 100)
+ ",");
else
values.append(map.get(param) + ",");
sql.append(flowFieldName + " ,");
} else{
values.append("'" + map.get(param) + "',");
sql.append(flowFieldName + " ,");
}
}
}
}
Iterator notnullIt = PackageConstants.getNotNullableFieldMap().keySet()
.iterator();
while (notnullIt.hasNext()) {
String tempKey = (String) notnullIt.next();
String tempParamType = (String) PackageConstants
.getNotNullableFieldMap().get(tempKey);
if (sql.toString().indexOf(tempKey)<0contains(tempKey)) {
sql.append(tempKey + " ,");
if (tempParamType.indexOf("int")>=0contains("int")
|| tempParamType.indexOf("double")>=0.contains("double")
|| tempParamType.indexOf("decimal")>=0.contains("decimal"))
values.append("0 ,");
else
values.append("'',");
}
}
String temp1 = sql.substring(0, sql.length() - 1);
String temp2 = "";
long t = System.currentTimeMillis()
- ((SQLList) PackageConstants.getSQLs()).getLastCommitTime();
if (!values.equals("")) {
temp2 = values.substring(0, values.length() - 1);
temp1 = temp1 + ")";
temp1 = temp1 + value.toString() + temp2 + ")";
System.out.println(temp1);
if (PackageConstants.getSQLs().size() >= PackageConstants.COMMIT_NUM) {
ConnectionFactory cf = new ConnectionFactoryImpl();
Connection conn = cf.getConnection(PackageConstants.FLOW_DB);
Statement stmt = null;
PackageConstants.getSQLs().add(temp1);
int times = PackageConstants.getSQLs().size();
try {
stmt = conn.createStatement();
for (int i = 0; i < PackageConstants.getSQLs().size(); i++) {
stmt.addBatch((String) (PackageConstants.getSQLs()
.get(i)));
}
stmt.executeBatch();
stmt.close();
conn.close();
PackageConstants.log.info("將" + times + "條記錄插入數(shù)據(jù)庫");
} catch (SQLException e) {
e.printStackTrace();
StackTraceElement st[] =e.getStackTrace();
PackageConstants.log.error(e.getMessage());
}
PackageConstants.getSQLs().clear();
((SQLList) PackageConstants.getSQLs()).setLastCommitTime(System
.currentTimeMillis());
} else if (((SQLList) PackageConstants.getSQLs()).size() > 0
&& System.currentTimeMillis()
- ((SQLList) PackageConstants.getSQLs())
.getLastCommitTime() >= PackageConstants.LIMIT_COMMIT_TIME) {
ConnectionFactory cf = new ConnectionFactoryImpl();
Connection conn = cf.getConnection(PackageConstants.FLOW_DB);
Statement stmt = null;
PackageConstants.getSQLs().add(temp1);
try {
stmt = conn.createStatement();
int times = PackageConstants.getSQLs().size();
System.out.println("-------times-------" + times);
for (int i = 0; i < times; i++) {
stmt.addBatch((String) (PackageConstants.getSQLs()
.get(i)));
}
stmt.executeBatch();
stmt.close();
conn.close();
PackageConstants.log.info("將" + times + "條記錄插入數(shù)據(jù)庫");
} catch (SQLException e) {
PackageConstants.log.error(e.getMessage());
}
PackageConstants.getSQLs().clear();
((SQLList) PackageConstants.getSQLs()).setLastCommitTime(System
.currentTimeMillis());
} else {
PackageConstants.getSQLs().add(temp1);
}
}
}*/
public void action(String tradeNo, Map map){
StringBuffer sql = new StringBuffer("INSERT INTO fl_flow_tb(");
StringBuffer value = new StringBuffer(" VALUES(");
StringBuffer values = new StringBuffer("");
Set keySet = map.keySet();
/*System.out.println();
System.out.println("====tradeNo==="+tradeNo);*/
Set mapkeyTypeSet = PackageConstants.getFieldTypeMap().keySet();
Map fieldMapping = (Map)FieldMappingCfg.getFieldMap().get(tradeNo);
// Map fieldMapping = PackageConstants.getFieldMapping();
Iterator it = keySet.iterator();
if(null != fieldMapping){
while (it.hasNext()) {
String param = ((String) it.next());
if (fieldMapping.containsKey(
param.toUpperCase())) {
String flowFieldName = (String) fieldMapping.get(param.toUpperCase());// fm.getFlowField();
if (sql.toString().indexOf(flowFieldName)<0/*.contains(flowFieldName)*/) {// 當SQL語句中沒有該字段時才加入
String paramType = (String) PackageConstants
.getFieldTypeMap().get(flowFieldName);//取得字段類型
//System.out.println("===paramType==="+paramType+"=====flowFieldName===="+flowFieldName);
if (paramType.indexOf("int")>=0/*contains("int")*/
|| paramType.indexOf("double")>=0/*.contains("double")*/
|| paramType.indexOf("decimal")>=0/*.contains("decimal")*/) {
String tempValue = (String) map.get(param);
//判斷是否是數(shù)字
String regEx="[0-9]+.[0-9]+";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(tempValue);
if(!m.matches())
continue;
//System.out.println(tempValue);
if (flowFieldName.equalsIgnoreCase("amount"))
values.append(((new Double(tempValue))
.doubleValue() * 100)
+ ",");
else
values.append(map.get(param) + ",");
sql.append(flowFieldName + " ,");
} else{
values.append("'" + map.get(param) + "',");
sql.append(flowFieldName + " ,");
}
}
}
}
Iterator notnullIt = PackageConstants.getNotNullableFieldMap().keySet()
.iterator();
while (notnullIt.hasNext()) {
String tempKey = (String) notnullIt.next();
String tempParamType = (String) PackageConstants
.getNotNullableFieldMap().get(tempKey);
if (sql.toString().indexOf(tempKey)<0/*contains(tempKey)*/) {
sql.append(tempKey + " ,");
if (tempParamType.indexOf("int")>=0/*contains("int")*/
|| tempParamType.indexOf("double")>=0/*.contains("double")*/
|| tempParamType.indexOf("decimal")>=0/*.contains("decimal")*/)
values.append("0 ,");
else
values.append("'',");
}
}
String temp1 = sql.substring(0, sql.length() - 1);
String temp2 = "";
long t = System.currentTimeMillis()
- ((SQLList) PackageConstants.getSQLs()).getLastCommitTime();
if (!values.equals("")) {
temp2 = values.substring(0, values.length() - 1);
temp1 = temp1 + ")";
temp1 = temp1 + value.toString() + temp2 + ")";
System.out.println(temp1);
if (PackageConstants.getSQLs().size() >= PackageConstants.COMMIT_NUM) {
ConnectionFactory cf = new ConnectionFactoryImpl();
Connection conn = cf.getConnection(PackageConstants.FLOW_DB);
Statement stmt = null;
PackageConstants.getSQLs().add(temp1);
int times = PackageConstants.getSQLs().size();
try {
stmt = conn.createStatement();
for (int i = 0; i < PackageConstants.getSQLs().size(); i++) {
stmt.addBatch((String) (PackageConstants.getSQLs()
.get(i)));
}
stmt.executeBatch();
stmt.close();
conn.close();
PackageConstants.log.info("將" + times + "條記錄插入數(shù)據(jù)庫");
} catch (SQLException e) {
e.printStackTrace();
StackTraceElement st[] =e.getStackTrace();
PackageConstants.log.error(e.getMessage());
}
PackageConstants.getSQLs().clear();
((SQLList) PackageConstants.getSQLs()).setLastCommitTime(System
.currentTimeMillis());
} else if (((SQLList) PackageConstants.getSQLs()).size() > 0
&& System.currentTimeMillis()
- ((SQLList) PackageConstants.getSQLs())
.getLastCommitTime() >= PackageConstants.LIMIT_COMMIT_TIME) {
ConnectionFactory cf = new ConnectionFactoryImpl();
Connection conn = cf.getConnection(PackageConstants.FLOW_DB);
Statement stmt = null;
PackageConstants.getSQLs().add(temp1);
try {
stmt = conn.createStatement();
int times = PackageConstants.getSQLs().size();
for (int i = 0; i < times; i++) {
stmt.addBatch((String) (PackageConstants.getSQLs()
.get(i)));
}
stmt.executeBatch();
stmt.close();
conn.close();
PackageConstants.log.info("將" + times + "條記錄插入數(shù)據(jù)庫");
} catch (SQLException e) {
PackageConstants.log.error(e.getMessage());
}
PackageConstants.getSQLs().clear();
((SQLList) PackageConstants.getSQLs()).setLastCommitTime(System
.currentTimeMillis());
} else {
PackageConstants.getSQLs().add(temp1);
}
}
}
}
/*public Map findFieldMapByTradeNo(String tradeNo) {
Map fieldMap = new HashMap();
Iterator it = (PackageConstants.getFieldMapping()).keySet().iterator();
while (it.hasNext()) {
String tempTradeNo = (String) it.next();
if (tempTradeNo.equals(tradeNo)) {
List objList = (List) PackageConstants.getFieldMapping().get(
tradeNo);
for (int i = 0; i < objList.size(); i++) {
FieldMapping fieldMapping = (FieldMapping) objList.get(i);
fieldMap.put(fieldMapping.getPackageField(), fieldMapping
.getFlowField());
}
}
}
return fieldMap;
}*/
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -