getDataInsertSql

private String getDataInsertSql(String tableName, ResultSet data)
throws Exception {
StringBuffer insertSql = new StringBuffer();
ResultSetMetaData meta = data.getMetaData();

insertSql.append("insert into " + tableName + "(");

for (int i = 0; i < meta.getColumnCount(); i++) {
// 少量有问题的数据类型,要跳过去
if ((meta.getColumnName(i + 1).equals("CHANNEL") && (tableName
.indexOf("PDM_PROD_NAMING") != -1))
|| meta.getColumnName(i + 1).equals("COUNT")) {
continue;
}

if (i != 0) {
insertSql.append(",");
}
insertSql.append(meta.getColumnName(i + 1));
}
insertSql.append(") values (");

for (int i = 0; i < meta.getColumnCount(); i++) {
// 少量有问题的数据类型,要跳过去
if ((meta.getColumnName(i + 1).equals("CHANNEL") && (tableName
.indexOf("PDM_PROD_NAMING") != -1))
|| meta.getColumnName(i + 1).equals("COUNT")) {
continue;
}

if (i != 0) {
insertSql.append(",");
}

// 要先取一下数据,后续才能调用wasNull()
data.getString(i + 1);

if (meta.getColumnTypeName(i + 1).equals("VARCHAR")
|| meta.getColumnTypeName(i + 1).equals("VARCHAR2")
|| meta.getColumnTypeName(i + 1).equals("CHAR")) {
if (data.wasNull()) {
insertSql.append("NULL");
} else {
insertSql.append("'");
insertSql.append(data.getString(i + 1).replace("'", "''"));
insertSql.append("'");
}
} else if (meta.getColumnTypeName(i + 1).equals("NUMBER")) {
insertSql.append(data.getDouble(i + 1));
} else if (meta.getColumnTypeName(i + 1).equals("DATE")) {
if (data.wasNull()) {
insertSql.append("NULL");
} else {
insertSql.append("TIMESTAMP '" + data.getDate(i + 1) + " "
+ data.getTime(i + 1) + "'");
}

} else if (meta.getColumnTypeName(i + 1).equals("CLOB")
|| meta.getColumnTypeName(i + 1).equals("BLOB")) {
// 二进制类型不做转换
// 这是一个limitation
insertSql.append("NULL");
} else {
// System.out.println("!!!!!!!"+meta.getColumnTypeName(i + 1));
}

}
insertSql.append(")");

return insertSql.toString();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值