⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 export.java

📁 OBPM是一个开源
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
															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 + -