Java 无法在SQL Server 2008 R2上执行(删除)查询

Java 无法在SQL Server 2008 R2上执行(删除)查询,java,sql-server-2008,delete-row,sql-delete,Java,Sql Server 2008,Delete Row,Sql Delete,我想删除数据库中包含.jpg扩展名所在URL的所有行 我正在使用 try{ java.sql.Statement mystat=connection.createStatement(); String delete_jpg="DELETE FROM mytable WHERE mycol LIKE '%.jpg%' "; mystat.executeUpdate(delete_jpg); }catch(Exception e){ } 使用JavaJDBC执行此查询不会产生任何错误

我想删除数据库中包含.jpg扩展名所在URL的所有行

我正在使用

 try{
 java.sql.Statement mystat=connection.createStatement();
 String delete_jpg="DELETE FROM mytable WHERE mycol LIKE '%.jpg%' ";
 mystat.executeUpdate(delete_jpg);
 }catch(Exception e){
  }
使用JavaJDBC执行此查询不会产生任何错误,但也不会删除行!请有人告诉我我做错了什么

示例URL为:

 images/affiliation-logo4.png HTTP/1.1
 images/661.jpg HTTP/1.1
 footerslider/images/blue-left-arrow.png HTTP/1.1
 footerslider/images/blue-right-arrow.png HTTP/1.1
 media/contentHeader/32.jpg HTTP/1.1     //I want to delete this type of rows
 index.php?option=com_content&task=view&id=543 HTTP/1.1
 images/favic.ico HTTP/1.1
 src/ HTTP/1.0
 uiit/faculty.php?dept_id=31 HTTP/1.1
 uims/faculty.php?dept_id=32 HTTP/1.1
 media/profile/dhS1t8X.jpg HTTP/1.1     //I want to delete this type of rows
 media/profile/SSbkpgG.jpg HTTP/1.1     //I want to delete this type of rows

您可以尝试对您的语句进行以下修改:


String delete_jpg=“从mytable中删除,其中mycl类似“%”++.jpg++“%”

从您的示例URL中,我看到模式是:

 media/profile/dhS1t8X.jpg HTTP/1.1     //I want to delete this type of rows
问题是你做得正确,但模式应该是:

try{
 java.sql.Statement mystat=connection.createStatement();
 String delete_jpg="DELETE FROM mytable WHERE mycol LIKE '%.jpg %' ";  //HERE YOU HAVE TO ADD A WHITE SPACE AFTER THE .jpg as you can also seen in your sample URL!
 mystat.executeUpdate(delete_jpg);
}catch(Exception e){
}

这样做,一定会帮助你

事务是否可能回滚?向我们展示如何执行查询。删除后是否提交?向我们展示Java代码更新问题;添加了代码您如何知道没有错误?您似乎正在接受异常。将e.printStackTrace()放入catch块并重新运行,然后在出现异常时发布异常:null com.microsoft.sqlserver.jdbc.SQLServerException:无法绑定多部分标识符“.jpg”。位于com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)位于com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)位于com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:792)在com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689)…..是的,它像一个符咒一样工作谢谢,现在它适用于我的整个数据库和其他查询也谢谢