java-无法确定为什么此SQL语句无法执行(Derby)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-无法确定为什么此SQL语句无法执行(Derby),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1845字,纯文字阅读大概需要3分钟。
内容图文
![java-无法确定为什么此SQL语句无法执行(Derby)](/upload/InfoBanner/zyjiaocheng/883/c6778f5c19fc42888094a4bf539ac4d4.jpg)
我的表是这样设置的,似乎可以正确创建. (没有引发异常)
String sqlString = String.format(
"CREATE TABLE %s(%s BIGINT,
%s VARCHAR(%d),
%s VARCHAR(%d),
%s VARCHAR(%d),
%s INT,
%s INT,
%s BIGINT,
PRIMARY KEY (%s))",
//
TABLE_NAME, //
Column.ID.name, //
Column.MAKE.name, Column.MAKE.length, //
Column.MODEL.name, Column.MODEL.length, //
Column.SERIAL_NUMBER.name, Column.SERIAL_NUMBER.length, //
Column.YEAR.name, //
Column.MILEAGE.name, //
Column.CUSTOMER_ID.name, //
Column.ID.name);
我正在尝试插入以下内容:
String sqlString = String.format(//
"INSERT INTO %s values(?, ?, ?, ?, ?, ?, ?)", TABLE_NAME);
boolean result = execute(sqlString, //
motorcycle.getId(), // long
motorcycle.getMake(), // String
motorcycle.getModel(), // String
motorcycle.getSerialNumber(), // String
motorcycle.getYear(), // int
motorcycle.getMileage(), // int
motorcycle.getCustomerId()); //long
execute(sqlString,args [])返回false,但不会引发异常.
derby.log也没有关于发生问题的信息.
我使用了错误的SQL数据类型吗?
编辑:
execute(sqlString,args [])方法在Dao超类中,并且对于其他子类也可以正常工作.
代码如下:
protected boolean execute(String preparedStatementString, Object... args) throws SQLException {
LOG.debug(preparedStatementString);
boolean result = false;
PreparedStatement statement = null;
try {
Connection connection = Database.getConnection();
statement = connection.prepareStatement(preparedStatementString);
int i = 1;
for (Object object : args) {
statement.setObject(i, object);
i++;
}
statement.executeUpdate();
result = true;
} finally {
close(statement);
}
return result;
}
解决方法:
从PreparedStatement javadoc for execute(String sql)开始:
Returns:
true if the first result is a ResultSet object; false if it is an update count or there are no results
您的表创建很可能成功了,您只是因为没有读取结果而变得错误.
正如a_horse_with_no_name在评论中提到的那样,使用PreparedStatement.executeUpdate()更适合此类声明.
内容总结
以上是互联网集市为您收集整理的java-无法确定为什么此SQL语句无法执行(Derby)全部内容,希望文章能够帮你解决java-无法确定为什么此SQL语句无法执行(Derby)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。