你这么拼接sQL是不行的,第一,容易sql注入。第二,效率极其低下。你上面的sql直接用Java变量拼接sql,它每次执行,都要进行校验和编译,在正常项目中不可取,规范代码,养成良好习惯最重要。你用字符串拼接当然要加单引号了,如2楼所说。规范的写法如批量插入:@Override public int[] batchInsert(final List> dataMapList) { String sql = "insert into DATA_FB_EUROP_AVG_ODDS(EXPECT,LOTTID,XID,SVAL,CVAL,MVAL,CREATE_TIME) values(?,?,?,?,?,?,now())"; int[] insertCount = jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setString(1, dataMapList.get(i).get("expect")); ps.setString(2, dataMapList.get(i).get("lottid")); ps.setString(3, dataMapList.get(i).get("xid")); ps.setString(4, dataMapList.get(i).get("s")); ps.setString(5, dataMapList.get(i).get("c")); ps.setString(6, dataMapList.get(i).get("m")); } @Override public int getBatchSize() { return dataMapList.size(); } }); return insertCount; }
用 pstmt ,看起来清楚点connection 会在出 exception 的时候不关闭……
"insert into tea(ID,Name,Password) values ('"+Tf1.getText()+"','"+Tf2.getText()+"','"+Tf3.getText()+"')"
insert的values里,是不是多了个")"