Exception in thread "main" java.sql.SQLException: ORA-01008: 并非所有变量都已绑定解决方案

搜了一下,好多人都没找到关键点。我分享一下我的解决方法:

public class StuDao {
		public static void main(String[] args) throws SQLException, ClassNotFoundException {
			Stu s = new Stu();
			s.setName("liu");
			s.setSex("女");
			s.setAge(55);
			insert(s);
                    }
		public static  int insert(Stu s) throws SQLException, ClassNotFoundException {
			Connection con = DBLink.getCon();
			//System.out.println(con);

			String str="insert into students (id, name,sex,age) values ( stu_seq.nextval,?,?,?)";
			//预处理 PreparedStatement 马上可以执行了,先通过连接,把要执行的sql执行
			/*
			* ?是占位符从序号1开始	?赋值要在executeUpdate()之前完成
			* */
			PreparedStatement ps = con.prepareStatement(str);
			ps.setString(1,s.getName());
			ps.setString(2,s.getSex());
			ps.setInt(3,s.getAge());
			int i=ps.executeUpdate(str);//当 返回值是1时,执行成功.
			System.out.println(i);

			return 0;
		}
}

运行结果:

其实错误很简单,不过我也找了很久

只要把  int i=ps.executeUpdate(str);  改为  int i=ps.executeUpdate();
发布了61 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Dnesity/article/details/105029707
今日推荐