JDBC 中的pstmt.setString(numb,(String)list.get(j));出错

    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","");