批量执行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。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值