最近在学习Java连接oracle数据库操作, 无意间一个小问题, 浪费了一个下午和半个晚上去找这个错误, 本来可以做更多的事情的, 现将这个错误贴出来, 每次看到, 定将勉励!
1 ........................... 2 3 try { 4 String sql = "insert into t_test (user_id, user_name, password) values (?,?,?)"; 5 pst = conn.prepareStatement(sql); 6 7 if (user.getUserID() == null || user.getUserName() == null || user.getPassWord() == null) 8 { 9 throw new Exception("kong"); 10 } 11 12 pst.setString(1, user.getUserID()); 13 pst.setString(2, user.getUserName()); 14 pst.setString(3, user.getPassWord()); 15 16 row = pst.executeUpdate(sql); 17 } 18 catch(Exception ex) { 19 20 .................
pst.executeUpte();
这个语句是一个执行语句, 本身就是一个命令, 命令是执行pst = conn.prepareStatement(sql);构建出来的数据库命令, 但是在里面再加sql就是错误了, 前面给占位符赋值的语句就全部白做了.
最后oracle给出了ORA-01008:并非所有变量都已绑定 的错误.
在学习编程的过程中, 出现一些难以解决的问题, 甚至于一些见都没见到过的异常都是家常便饭, 自己能亲自解决的才是最有价值的, 这次这个错误的发生, 微观上来讲是自己手误习惯性的写上的, 但是也从另一个层面说明了, 知识掌握的相当的不牢固, 来来回回看了N遍, 也没发现这个错误的存在, 以后注意吧!