繁体   English   中英

if语句突然离开时的代码

[英]Code in if statement suddenly leaves

我有一个if语句,我已经用断点检查了我的程序正在输入if语句。 我可以一直执行我的语句,直到到达prepare语句行,然后我的if语句似乎无缘无故地破裂,并且不在我的prepare语句下执行任何代码。 我已经搜索了我的问题,但找不到任何解决方案。

 if(entry != null && subNum.equals(1) && rs.getRow() == 1)
 {
         String blogID = rs.getString(1);
         String timeStamp = rs.getString(2);
         java.util.Date date= new java.util.Date();
         String tStamp = new Timestamp(date.getTime()).toString();
         query = "INSERT INTO blog_entries VALUES (?, ?, ?, ?, ?)";
         ps = con.prepareStatement(query);
         ps.setString(1, entry);
         out.print(entry);
         ps.setString(2, timeStamp);
         out.print(timeStamp);
         ps.setString(3, tStamp);
         out.print(tStamp);
         ps.setString(4, entry);
         out.print(entry);
         ps.setString(5, blogID);
         out.print(blogID);
         ps.executeUpdate();
         out.println("Submit Successful");
 }

印刷品仅用于调试目的,任何帮助将不胜感激。

我猜con如果在第一次使用时就中断了, con就不会启动,您能确认它在使用的行上不为null吗? 如果是,则捕获并发布异常,例如:

 if(entry != null && subNum.equals(1) && rs.getRow() == 1)
 {
         String blogID = rs.getString(1);
         String timeStamp = rs.getString(2);
         java.util.Date date= new java.util.Date();
         String tStamp = new Timestamp(date.getTime()).toString();
         query = "INSERT INTO blog_entries VALUES (?, ?, ?, ?, ?)";
         try{
                if (con != null)
                {
                     ps = con.prepareStatement(query);
                     ps.setString(1, entry);
                     out.print(entry);
                     ps.setString(2, timeStamp);
                     out.print(timeStamp);
                     ps.setString(3, tStamp);
                     out.print(tStamp);
                     ps.setString(4, entry);
                     out.print(entry);
                     ps.setString(5, blogID);
                     out.print(blogID);
                     ps.executeUpdate();
                } else { 
                     // print error and break }                    
            }
      catch (Exception e){
         //print error message
     }
         out.println("Submit Successful");
 }

如果您是“随机地”突破一个块,则可能意味着您正在抛出异常。 如果尝试创建PreparedStatement失败,则可能是SQL无效或无法建立连接。

Aws @Marko指出,但是,您的SQL语句看起来确实有效。 因此,我将检查con对象。 但是,您应该能够检查异常的堆栈跟踪以获取更多有用的信息,而不仅仅是猜测。

prepareStatement引发SQLException,因此请用try / catch包围它,以查看是否是您的问题。

http://docs.oracle.com/javase/6/docs/api/java/sql/Connection.html#prepareStatement(java.lang.String

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM