JDBC PreparedStatement.executeBatch不更新数据库中的值,也没有错误

时间:2013-07-09 12:07:37

标签: java jdbc

您好我正在尝试使用JDBC addBatch executeBatch更新sybase数据库。我在运行时创建表并在jdbc批处理中插入值。我正在以下列格式从逗号分隔文件中读取值

1,ABC,DEF
2,GHI,KJL

create query is CREATE TABLE School(schoolid int,schoolname varchar ,schooltype varchar )
insert query INSERT INTO School(schoolid,schoolname,schooltype) VALUES (?,?,?)

正在发生的事情是我没有成功执行错误代码,但最终数据库中没有值。表是空的。我也在使用dbConn.commit()但仍然是空表。请指导。提前谢谢。

1 个答案:

答案 0 :(得分:2)

您的批次很可能小于batchSize,这意味着您永远不会使用pstmt.executeBatch();到达一行,因为++count % batchSize == 0永远不会评估为真。

您可以在关闭pstmt.executeBatch();循环后立即添加一行while来轻松解决此问题。这样,任何剩余的行都不会导致批处理被执行,而新的批处理将在最后执行。