我用Preparedstement的setXXX()方法存储数据时抛出异常:无效的列索引。
程序如下:
public class Test {
Connection conn;
Statement stmt;
PreparedStatement pstmt;
public static void main(String[] args) {
Test test = new Test();
try {
test.base();
test.insert();
} catch (SQLException e) {
e.printStackTrace();
} } private void insert() throws SQLException {
pstmt = conn.prepareStatement("insert into stu values");
pstmt.setInt(1,2);
pstmt.setString(2,"黄蓉");
pstmt.executeUpdate();
conn.commit();
} public void base() throws SQLException{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "dbuser", "024420");
}
}
程序如下:
public class Test {
Connection conn;
Statement stmt;
PreparedStatement pstmt;
public static void main(String[] args) {
Test test = new Test();
try {
test.base();
test.insert();
} catch (SQLException e) {
e.printStackTrace();
} } private void insert() throws SQLException {
pstmt = conn.prepareStatement("insert into stu values");
pstmt.setInt(1,2);
pstmt.setString(2,"黄蓉");
pstmt.executeUpdate();
conn.commit();
} public void base() throws SQLException{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "dbuser", "024420");
}
}
pstmt = conn.prepareStatement("insert into stu values");
pstmt.setInt(1,2);
pstmt.setString(2,"黄蓉");
pstmt.executeUpdate();
conn.commit();
}
这个sql语句values后面应该先用?号占位.
pstmt.setInt(1,2);
pstmt.setString(2,"黄蓉");
pstmt.executeUpdate();
conn.commit();
对了 "insert into stu values(?,?)"
pstmt = conn.prepareStatement("insert into stu values (?,?)");