批量执行sql语句时,如何跳过其中发生的错误,继续执行剩下的sql语句,最后在显示所有错误信息

最近,在写项目的时候,遇到这样一个需求,即批量执行数据库授权语句(grant ),当n条授权语句内某一条授权语句,执行失败后,记录其错误信息,然后继续执行剩下的grant 语句,最后在吧错误信息统一抛出。

这里给解决思路:

       1.首先,我们需要捕获到sql执行的错误。

          try{

             jdbc.execute(sql);

          }catch(Exception e)

         { 

                 ......//在此记录下错误信息

          }

      2. 如何记录错误信息

      建议做法:StringBuilder message  =new StringBuilder();

     try{

             jdbc.execute(sql);

          }catch(Exception e)

         {     

                 ......//在此记录下错误信息  

               //你也可以在此对错误信息进行处理

              message.append(e.getMessage);

          }

     3.完成了一次错误信息捕获

     4.批量执行sql语句

     for(....)

    {

           try{

             jdbc.execute(sql);

           }catch(Exception e)

          {     

                 ......//在此记录下错误信息  

                //你也可以在此对错误信息进行处理

               message.append(e.getMessage);

           }

     }

     这样就能够在for 循环全部执行后,在抛出异常信息。

   5.如果你想要出现错误就抛出异常

   可以 如下做法:

          for(....)

       {

           try{

             jdbc.execute(sql);

           }catch(Exception e)

           {     

                 ......//在此记录下错误信息  

                //你也可以在此对错误信息进行处理

               message.append(e.getMessage);

              return message;

            }

      }

  try catch 的使用方式即是,若catch 内不直接返回结果的话,它会跳过此次发生错误的sql执行,继续循环剩余的sql。

你可能感兴趣的:(批量执行sql语句时,如何跳过其中发生的错误,继续执行剩下的sql语句,最后在显示所有错误信息)