int ownerUpdateCount = 0;
PreparedStatement statement = null;
Connection connection = null;
try{
while(featuresIT.hasNext()){
String feature = (String) featuresIT.next();
String updateOwnerQuery = "UPDATE `regression_reports` "
+ "JOIN `feature_testbed_owner_mapping_628` ON (`regression_reports`.Feature='"
+ feature
+ "' AND `regression_reports`.Feature = `feature_testbed_owner_mapping_628`.feature_as_on_webpage) "
+ "SET `regression_reports`.Owner = `feature_testbed_owner_mapping_628`.owner";
//logger.debug("\n updateOwnerQuery : " + updateOwnerQuery);
connection = dataSource.getConnection();
connection.setAutoCommit(true);
statement = connection.prepareStatement(updateOwnerQuery);
//ownerUpdateCount +=
ownerUpdateCount = statement.executeUpdate();
System.out.println(feature + " ownerUpdateCount : " + ownerUpdateCount);
}
logger.debug("\n ownerUpdateCount : " + ownerUpdateCount);
} catch (SQLException e) {
e.printStackTrace();
} finally {
try { if(null!=statement)statement.close();} catch (SQLException e)
{e.printStackTrace();}
try { if(null!=connection)connection.close();} catch (SQLException e)
{e.printStackTrace();}
}
SQLException:不能使用executeQuery()发出数据操作语句。在com.mysql.jdbc.sqlerror.createsQlException(sqlerror.java:1078)在com.mysql.jdbc.sqlerror.createsQlException(sqlerror.java:989)在com.mysql.jdbc.sqlerror.createsQlException(sqlerror.java:975)在com.mysql.jdbc.sqlerror.createsQlException(sqlerror.java:920)在.tomcat.dbcp.dbcp.delegatingStatement.executeQuery(delegatingStatement.java:208)在org.apache.tomcat.dbcp.dbcp.delegatingStatement.executeQuery(delegatingStatement.java:208)在com.n7k.regarsion.regarsionDao.updateRegreportSDB(regarsionDao.java:71)在com.n7k.regarsion.regarsionServlet.doPost(
此错误仅在循环的第一次迭代中发生。任何调试其原因的建议。
String updateFeaturesQuery = "INSERT INTO `regression_reports` "
+ "(Feature, `Report`, `P`, `F`, `Remarks`) VALUES ('"
+ feature + "','" + report + "'," + pass + "," + fail
+ ") " + "ON DUPLICATE KEY UPDATE `Report` = '"
+ report + "', `P` = " + pass + ", `F`= " + fail
+ ", `Remarks` = " + remarks + ";";
connection = dataSource.getConnection();
statement = connection.prepareStatement(updateFeaturesQuery);
Line#73
featureUpdateCount = statement.executeUpdate(updateFeaturesQuery);
错误:
上面的执行给出了这个错误。手动执行相同的查询不会给我带来任何错误。
此处完全缺少备注
列,
// No `Remarks` even though you included it in the list. `F`, `Remarks`)
"," + fail /* + Remarks! */ + ") " + "ON DUPLICATE KEY UPDATE `Report` = '"
您的列备注
在这里没有转义,
+ ", `Remarks` = '" + remarks + "';";
但是您应该使用绑定参数或字符串stringescapeutils#escapesql(String),因为您的代码容易受到sql注入的攻击。
问题内容: 我一直在这里,这里和这里阅读有关使用优势的信息 如果我理解正确,那么JDBC将把尽可能多的查询打包到单个网络包中,从而降低了网络开销。我对吗? 然后引起我注意的是,在MySQL服务器中为定义的值可能会导致查询问题(查询未在服务器上执行)。 所以我的第二个问题是,JDBC是否知道分配给它的值,并因此使数据包小于为其定义的值,或者这是开发人员必须考虑的事情? 如果我理解不对,请也通知我。
问题内容: 如何在Windows中使用JDBC代码连接到基于Microsoft Access的数据库? Type-1和Type-4类型的驱动程序应编写什么语法? 对于我们使用的每种类型的驱动程序,以上语法是否有所不同?我们如何定义和识别我们使用的驱动程序类型? 如果可能,然后还为oracle指定要加载的驱动程序语法。 问题答案: 您可以通过以下方式使用JDBC-ODBC桥: 然后,您可以使用以下形
这以前被问过一次,但解决方案并没有解决问题。我正在创建一个JUnit测试: 上述测试调用的查询是: 错误:
本文向大家介绍MySQL DML语句整理汇总,包括了MySQL DML语句整理汇总的使用技巧和注意事项,需要的朋友参考一下 DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select),是开发人员日常使用最频繁的操作。 1.插入(insert) 格式1. 格式2. 不用指定字段名称,但是value值需与表字段严格对应.
在本章中,我们将讨论如何在Salesforce中执行不同的数据库修改功能。 有两个说我们可以执行功能。 DML声明 DML是为执行插入,更新,删除,复制,恢复记录,合并记录或转换引导操作而执行的操作。 DML是Apex中最重要的部分之一,因为几乎每个业务案例都涉及对数据库的更改和修改。 数据库方法 您可以使用DML语句执行的所有操作也可以使用数据库方法执行。 数据库方法是可用于执行DML操作的系统
问题内容: 我在000webhost上创建了一个mySQL数据库,我想将其连接到我的Java程序中,但是某种程度上驱动程序没有接收套接字。这是我的代码: 其中a4931569_users是数据库,Users是表。请帮我。 问题答案: 000webhost中的MySQL不允许您从外部应用程序进行连接,而只能从其域中托管的页面内进行连接。 请检查:如何从计算机连接到MySQL?