备份数据 生成insert语句的时候,判断类型的时候出了点问题! 希望大家指教 红色部位!
public List<Vector<Object>> getAllDatas(String tableName) throws Exception {
List<Vector<Object>> list ;
Vector<Object> vector;
    StringBuilder columnsStr = new StringBuilder().append("SELECT * FROM ").append(tableName);
try {
list = new ArrayList<Vector<Object>>();
rs = queryResult(columnsStr.toString());
ResultSetMetaData rsd = rs.getMetaData();
int column = rsd.getColumnCount();
while (rs.next()) {
vector = new Vector<Object>();
for (int i = 1; i <= column; i++) {
int a = rsd.isNullable(i);
String typeName = rsd.getColumnTypeName(i);
if (typeName == "VARCHAR") {
vector.add("\'" + rs.getString(i) + "\'");
} else if (typeName == "DATETIME"&&rs.getString(i)=="null") {
vector.add(rs.getString(i));
} else {
// System.out.println(rsd.getColumnTypeName(i));
vector.add(rs.getString(i));
}

}
list.add(vector);
}

} catch (Exception e) {
throw e;
} finally {
DbConnection.closeAll(conn, stmt, null);
}
return list;
}

解决方案 »

  1.   

    [code]
    else if (typeName == "DATETIME"&&rs.getString(i)=="null") {
     vector.add(rs.getString(i));
     } 
    [/code]这是干啥呢?
      

  2.   

    楼上的,程序没有出错,
    例如我现在需要生成 INSERT INTO `jbpm4_hist_task` VALUES ('280002', '0', 'null', null, 'Kayzhan', '0', null, '2010-05-07 15:45:04', null, '0', '1', null);
    现在需要解决 'null' 跟 null 的问题!
      

  3.   

    比较字符串内容是否相等用equals,不是==if ("VARCHAR".equals(typeName)) 
      

  4.   

    空值判断 StringUtils.isBlank()