这个项目本来是用MySQL的,我想改成Oracle,连接是连接上了,但是一使用insert就老报这个错误
public static void addA(String email, String pw, String name, String phone,
String IDNumber) throws SQLException, ClassNotFoundException {
String sql = "insert into admin(EMAIL,APW,ANAME,PHONE,IDNUMBER)" + "values(ADMIN_SEQ.nextval,?,?,?,?,?)";
//"insert into admin values(?,?,?,?,?)";
PreparedStatement ps = DataConnect.getCon().prepareStatement(sql);
ps.setString(1, email);
ps.setString(2, pw);
ps.setString(3, name);
ps.setString(4, phone);
ps.setString(5, IDNumber);
ps.executeUpdate();
DataConnect.getCon().commit();
}
可以把表名改一下 试一试 我不是很确定 但可以试一下
数据库连接代码没写错吗?
你先把你的sql语句放到数据库里去运行一遍,能运行再写进代码里试试。感觉你的email那个不应该对应那个nextval吧。既然报错sql语句,你先在数据库运行一遍
public static void addA(String email, String pw, String name, String phone,
String IDNumber) throws SQLException, ClassNotFoundException {
String sql = "insert into admin(EMAIL,APW,ANAME,PHONE,IDNUMBER) values(?,?,?,?,?)";
//"insert into admin values(?,?,?,?,?)";
PreparedStatement ps = DataConnect.getCon().prepareStatement(sql);
ps.setString(1, email);
ps.setString(2, pw);
ps.setString(3, name);
ps.setString(4, phone);
ps.setString(5, IDNumber);
ps.executeUpdate();
DataConnect.getCon().commit();
}
我改成这样的话也是报一样的错误
参数个数都没对上了,前面是5个,后面加上ADMIN_SEQ.nextval有6个了,你前面加上多一个应该就没问题了