StringBuffer sql = new StringBuffer();
sql.append("insert into " + DBNAME + "." + TABLTEST);
Connection conn = JdbcUtil.getConnection();
PreparedStatement pstmt = JdbcUtil.getPreparedStatement(conn, sql.toString());
long startTime = System.currentTimeMillis();
try {
int count = 0;
int a = 0;
List<String> list = new LinkedList<String>();
/** 读取行 */
for (int i = 0; i < cu.getRowNum(); i++) {
/** 读取行中的所有列 */
for (int x = 0; x < cu.getColLineNum(i); x++) {
String name = cu.getString(i, x); // 第一行每列的数据
// System.out.print(name);
list.add(name);
// System.out.print(name+"-");
}
System.out.println( " ");
if(i==0){
sql.append("(");
for(int j = 0;j<list.size();j++){
sql.append(list.get(j)+", ");
}
sql.deleteCharAt(sql.length()-2);
sql.append(")");
sql.append(" values(");
for(int u = 0;u<list.size();u++){
sql.append("?,");
}
sql.deleteCharAt(sql.length()-1);
sql.append(")");
System.out.println(sql+"=");
list.clear();
}else {
for(int j = 0;j<list.size();j++){
// System.out.println(list.get(j)+"==");
int numb =j+1;
System.out.println(sql+"=");
System.out.println(j +" " +list.get(j));
pstmt.setString(numb,(String)list.get(j));
// conn.setAutoCommit(false); // 若改为true 插入中遇到主键冲突还会继续插入,具体看需求
// pstmt.addBatch();
}
list.clear();
把 PreparedStatement pstmt = JdbcUtil.getPreparedStatement(conn, sql.toString());
放在
for(int j = 0;j<list.size();j++){ 之前
什么错误?
JDBC 中的pstmt.setString(numb,(String)list.get(j));
貌似里面会有一个null
当list=null是 是一个空指针
铁错误信息
类型转换错误??
是参数超出了范围
比如:
insert into test.test(id, psw, username, realname, sex, des, hiredate, role )
如果id是主键,自动增长,那么id就不需要
setStrig("id","");