用jdbc的PreparedStatement对象执行插入语句(代码如下),把参数都设置成了?,也用set给了值,但执行结果是插入的值除了年龄外都成了问号,然后我用Statement又执行了一遍,但结果和PreparedStatement,感觉应该是哪一处的语法写错了
String sql2 = "INSERT INTO student VALUES(?,?,?);";
PreparedStatement preparedStatement2 =connection.prepareStatement(sql2);
preparedStatement2.setString(1,"李华");
preparedStatement2.setString(2,"男");
preparedStatement2.setInt(3,20);
preparedStatement2.executeUpdate();
考虑下面两种解决办法:
1、你的id是不是自增主键,如果是的话,这样写:
PreparedStatement ps = conn.prepareStatement(
"INSERT INTO students (grade, name, gender) VALUES (?,?,?)",
Statement.RETURN_GENERATED_KEYS));
2、第二种写法,preparedStatement2在set的时候写成:
preparedStatement2.setObject('key','value');
sql2里面的sql语句不用写分号 把分号去掉试试