📄 export.java
字号:
Types.NULL);
}
}
} else {
errorInfo.append("Document "
+ dm.getId() + " "
+ cm.getFromName()
+ "value is null "
+ "\r\n");
pstmt
.setNull(columnNum,
Types.NULL);
}
} else // COLUMNMEPPING_TYPE_SCRIPT
{
Object result = null;
try {
result = runner.run(cm
.getValuescript());
} catch (Exception e) {
errorInfo.append("Document "
+ dm.getId()
+ " Script run error"
+ "\r\n");
}
if (result != null) {
if (cm
.getToType()
.equals(
ColumnMapping.DATA_TYPE_NUMBER)) {
try {
if (result instanceof Number) {
pstmt
.setDouble(
columnNum,
((Number) result)
.doubleValue());
} else if (result instanceof String) {
if (StringUtil
.isNumber((String) result)) {
pstmt
.setDouble(
columnNum,
Double
.parseDouble((String) result));
} else {
errorInfo
.append("Document "
+ dm
.getId()
+ " Script result: "
+ result
+ " Can not convert Number "
+ "\r\n");
pstmt.setNull(
columnNum,
Types.NULL);
}
} else {
errorInfo
.append("Document "
+ dm
.getId()
+ " Script result: "
+ result
+ " Can not convert Number "
+ "\r\n");
pstmt.setNull(
columnNum,
Types.NULL);
}
} catch (Exception e) {
errorInfo
.append("Document "
+ dm
.getId()
+ " Script result: "
+ result
+ " Can not convert Number "
+ "\r\n");
pstmt.setNull(columnNum,
Types.NULL);
}
} else if (cm
.getToType()
.equals(
ColumnMapping.DATA_TYPE_VARCHAR)) {
try {
if (result instanceof java.util.Date) {
pstmt
.setString(
columnNum,
format
.format((Date) result));
} else {
pstmt
.setString(
columnNum,
result
.toString());
}
} catch (Exception e) {
errorInfo
.append("Document "
+ dm
.getId()
+ " Script result:"
+ result
+ " Can not convert Varchar "
+ "\r\n");
pstmt.setString(columnNum,
result.toString());
}
} else if (cm
.getToType()
.equals(
ColumnMapping.DATA_TYPE_DATE)) {
if (result instanceof java.util.Date) {
pstmt
.setDate(
columnNum,
new java.sql.Date(
((Date) result)
.getTime()));
} else if (result instanceof String) {
try {
Date dt = format
.parse((String) result);
pstmt
.setDate(
columnNum,
new java.sql.Date(
dt
.getTime()));
} catch (Exception e) {
errorInfo
.append("Document "
+ dm
.getId()
+ " Script result: "
+ result
+ " Can not convert Date "
+ "\r\n");
pstmt.setNull(
columnNum,
Types.NULL);
}
}
}
} else {
errorInfo.append("Document "
+ dm.getId()
+ " Script result: "
+ result + " is null "
+ "\r\n");
pstmt
.setNull(columnNum,
Types.NULL);
}
}
}
columnNum++;
}
}
try {
pstmt.executeUpdate();
} catch (Exception e) {
System.out
.println(dm.getId() + "-->这条记录已存在,将删除再插入");
stmt.executeUpdate("delete from "
+ mappingconfig.getTablename()
+ " where DOCID='" + dm.getId() + "'");
pstmt.executeUpdate();
}
System.out.print("insert one.....");
}
}
}
MappingConfigProcess mp = (MappingConfigProcess) ProcessFactory
.createProcess(MappingConfigProcess.class);
mappingconfig.setLastRun(new Date());
mp.doUpdate(mappingconfig);
errorInfo.append("Derive " + totalLine + " data altogether");
FileOperate.writeFile(fileFullName, errorInfo.toString(), true);
System.out.println("Export End");
return String.valueOf(totalLine);
} catch (Exception e) {
throw e;
} finally {
if (stmt != null) {
stmt.close();
stmt = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
if (conn != null && !conn.isClosed()) {
conn.close();
conn = null;
}
}
}
public static String creatInsertSQL(MappingConfig mappingconfig,
Collection columns) {
StringBuffer sqlInsert = new StringBuffer();
sqlInsert.append(" insert into ");
sqlInsert.append(mappingconfig.getTablename());
sqlInsert.append(" ( ");
for (Iterator iter = columns.iterator(); iter.hasNext();) {
ColumnMapping cm = (ColumnMapping) iter.next();
sqlInsert.append(cm.getToName());
if (iter.hasNext())
sqlInsert.append(", ");
}
sqlInsert.append(" ) values ( ");
for (Iterator iter = columns.iterator(); iter.hasNext();) {
iter.next();
sqlInsert.append("?");
if (iter.hasNext())
sqlInsert.append(", ");
}
sqlInsert.append(" ) ");
System.out.println(sqlInsert.toString());
return sqlInsert.toString();
}
public static String creatAlterTableSQL(MappingConfig mappingconfig,
ColumnMapping cm, String DatabaseVersion) {
StringBuffer sqlAlterTable = new StringBuffer();
sqlAlterTable.append("ALTER TABLE ").append(
mappingconfig.getTablename());
sqlAlterTable.append(" ADD ").append(cm.getToName()).append(" ");
if (cm.getToType().equals(ColumnMapping.DATA_TYPE_VARCHAR))
sqlAlterTable.append(" VARCHAR ");
else if (cm.getToType().equals(ColumnMapping.DATA_TYPE_NUMBER))
sqlAlterTable.append(" DECIMAL ");
else if (cm.getToType().equals(ColumnMapping.DATA_TYPE_DATE)) {
if (DatabaseVersion.indexOf("Microsoft") > -1)
sqlAlterTable.append(" DateTime ");
else if (DatabaseVersion.indexOf("Oracle") > -1)
sqlAlterTable.append(" DATE ");
}
if (!cm.getToType().equals(ColumnMapping.DATA_TYPE_DATE))
sqlAlterTable.append(" (").append(cm.getLength()).append(")");
return sqlAlterTable.toString();
}
public static String creatTableSQL(MappingConfig mappingconfig,
Collection columnmappings, String DatabaseVersion) {
StringBuffer sqlCreatTable = new StringBuffer();
sqlCreatTable.append(" CREATE TABLE ");
sqlCreatTable.append(mappingconfig.getTablename());
sqlCreatTable.append(" ( ");
for (Iterator iter = columnmappings.iterator(); iter.hasNext();) {
ColumnMapping cm = (ColumnMapping) iter.next();
if (cm.getToName().equals("DOCID")) {
sqlCreatTable.append(cm.getToName().toUpperCase());
sqlCreatTable.append(" VARCHAR ");
sqlCreatTable.append(" (").append(cm.getLength()).append(")");
sqlCreatTable.append(" PRIMARY KEY ");
} else if (cm.getToType().equals(ColumnMapping.DATA_TYPE_VARCHAR)) {
sqlCreatTable.append(cm.getToName().toUpperCase());
sqlCreatTable.append(" VARCHAR ");
sqlCreatTable.append(" (").append(cm.getLength()).append(")");
} else if (cm.getToType().equals(ColumnMapping.DATA_TYPE_NUMBER)) {
sqlCreatTable.append(cm.getToName().toUpperCase());
sqlCreatTable.append(" DECIMAL ");
// sqlCreatTable.append("
// (").append(cm.getLength()).append(")");
sqlCreatTable.append(" (").append(cm.getLength()).append(",");
sqlCreatTable.append(cm.getPrecision()).append(")");
} else if (cm.getToType().equals(ColumnMapping.DATA_TYPE_DATE)) {
sqlCreatTable.append(cm.getToName().toUpperCase()); // Column 名字
if (DatabaseVersion.indexOf("Microsoft") > -1)
sqlCreatTable.append(" DateTime ");
else if (DatabaseVersion.indexOf("Oracle") > -1)
sqlCreatTable.append(" Date ");
} else if (cm.getToType().equals("TIMESTAMP")) {
sqlCreatTable.append(cm.getToName().toUpperCase());
sqlCreatTable.append(" TIMESTAMP ");
sqlCreatTable.append(" (").append(cm.getLength()).append(")");
}
if (iter.hasNext())
sqlCreatTable.append(", ");
}
sqlCreatTable.append(" ) ");
return sqlCreatTable.toString();
}
public static Collection compareDateType(Map DataBaseFieldInfo,
Collection columnmappings)// MappconfigConfig.columns与数据库存在的字段类型不同时,以数据库字段为准
{
Collection columns = new ArrayList();
for (Iterator iter = columnmappings.iterator(); iter.hasNext();) {
ColumnMapping cm = (ColumnMapping) iter.next();
ColumnMapping em = new ColumnMapping();
em.setFromName(cm.getFromName());
em.setToName(cm.getToName());
em.setToType(cm.getToType());
em.setType(cm.getType());
em.setValuescript(cm.getValuescript());
if (DataBaseFieldInfo.containsKey(cm.getToName().toUpperCase())) {
String datetype = (String) DataBaseFieldInfo.get(cm.getToName()
.toUpperCase());
if ((datetype.contains("NUMBER") || datetype
.contains("DECIMAL"))
&& !cm.getToType().equals(
ColumnMapping.DATA_TYPE_NUMBER)) {
em.setToType(ColumnMapping.DATA_TYPE_NUMBER);
} else if (datetype.contains("VARCHAR")
&& !cm.getToType().equals(
ColumnMapping.DATA_TYPE_VARCHAR)) {
em.setToType(ColumnMapping.DATA_TYPE_VARCHAR);
}
else if ((datetype.contains("DateTime") || datetype
.contains("Date"))
&& !cm.getToType().equals(ColumnMapping.DATA_TYPE_DATE)) {
em.setToType(ColumnMapping.DATA_TYPE_DATE);
}
columns.add(em);
}
}
return columns;
}
public static void main(String args[]) throws Exception {
// MappingConfig temp = new MappingConfig();
// exprotDocument(temp);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -