Java 无法在SQL Server 2008 R2上执行(删除)查询
我想删除数据库中包含.jpg扩展名所在URL的所有行 我正在使用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执行此查询不会产生任何错误
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)…..是的,它像一个符咒一样工作谢谢,现在它适用于我的整个数据库和其他查询也谢谢