java不能执行sql修改语句_java-无法确定为什么此SQL语句无法执行(Derby)

我的表是这样设置的,似乎可以正确创建. (没有引发异常)

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;

}

解决方法:

Returns:

true if the first result is a ResultSet object; false if it is an update count or there are no results

您的表创建很可能成功了,您只是因为没有读取结果而变得错误.

标签:derby,sql,java

来源: https://codeday.me/bug/20191111/2018325.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值