草庐IT

prepared-statement

全部标签

java - executeBatch 在 Prepared Statement 上的效果如何?

针对这个问题,问一问:executeBatch方法的效果如何?是否有一个性能基准,它说..“如果你有1000条记录要插入,使用executeBatch而不是executeUpdate可以节省x数量的数据库周期?”或者这只是一个惯例?编辑:以下是我正在使用的东西:托管在Z/OS上的DB2V8.1,这是一个Web应用程序,在执行最坏的情况下会一次性插入80,000条记录。 最佳答案 不确定您使用的是什么数据库。当我使用db2对此进行测试时,这是我看到的:写入数据库:1次插入花费了2500微秒。10次插入花费了6000微秒。(每次写入60

java - 在 preparedStatement 中使用 oracle 的 to_date

我正在尝试使用preparedStatement中的to_date在oracle数据库中输入日期,但出现错误。代码片段:sql="selectIdentifierfrommetadatawherecontent_cdate>=to_date(?,'dd-mm-yyyy')andcontent_cdatedateToString方法返回如下值:2012-01-0112:00:00错误:[Oracle][ODBC][Ora]ORA-01861:literaldoesnotmatchformatstring请指教。 最佳答案 您应该使用正

java - 我无法理解 ORA-01722 : invalid number 背后的原因

我有一个随机生成的问题(在千分之一的调用之间出现一次)。错误ORA-01722:invalidnumber是在准备语句Oracle数据库中执行sqlupdate时以随机方式生成的。案例详情如下:try{connection=getConnection();statement=connection.prepareStatement(sql);for(inti=0;i日志中的值是这样的:FailedtoexecuteSQLstatment[updateCUSTOMER_CASEsetno_of_ptp=?,no_of_unreached=?,collector_name=?,last_ca

try-with-resources 中的 Java 准备语句不起作用

这个问题在这里已经有了答案:HowshouldIusetry-with-resourceswithJDBC?(5个答案)关闭8年前。昨天,Stack上的多人推荐使用try-with-resources。我现在正在为我的所有数据库操作执行此操作。今天想把Statement改成PreparedStatement,让查询更安全。但是,当我尝试在try-with-resources中使用准备好的语句时,我不断收到诸如“预期标识符”或“;”之类的错误或')'。我做错了什么?或者这不可能吗?这是我的代码:try(Connectionconn=DriverManager.getConnection(

java - java.sql.Connection.close() 对 java.sql.Statement 对象等的影响

关闭java.sql.Connection是否也会关闭从该连接获得的所有语句、准备语句等?或者,如果我关闭连接但未关闭语句等,是否会发生内存泄漏? 最佳答案 Doesclosingajava.sql.Connectionalsocloseallthestatements,preparedstatements,etc.obtainedfromthatconnection?OristheregoingtobememoryleakifIclosetheconnectionbutleavethestatements,etc.unclosed

java - 无法使用 PreparedStatement 的 getGeneratedKeys() 在 Java 中找到生成的 key

我有一个查询如下:StringSQL="insertintotable(id,name)values(sequence.nextval,?)";然后我像这样制作一个PreparedStatement://initiateconnection,statementetcpStatement=connection.prepareStatement(SQL,Statement.RETURN_GENERATED_KEYS);pStatement.setString(1,'blabla');pStatement.executeUpdate();ResultSetrs=pStatement.getG

java - ResultSet 的 Oracle JDBC 性能

到目前为止,我一直在使用类似这样的东西来查询我的数据库,它工作得很好:PreparedStatementprepStmt=dbCon.prepareStatement(mySql);ResultSetrs=prepStmt.executeQuery();但后来我需要使用rs.first();以便能够多次迭代我的rs。所以我现在用PreparedStatementprepStmt=dbCon.prepareStatement(mySql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);我的问题与两者的性能有关。如

java - PreparedStatement 的 "close"与 Connection 的关系?

Javadoc说PreparedStatement的.close()说它..ReleasesthisStatementobject'sdatabaseandJDBCresourcesimmediatelyinsteadofwaitingforthistohappenwhenitisautomaticallyclosed.Itisgenerallygoodpracticetoreleaseresourcesassoonasyouarefinishedwiththemtoavoidtyingupdatabaseresources.CallingthemethodcloseonaStatem

java - 哪个更快? Statement 或 PreparedStatement

在网络中经常可以找到这样的代码:privatestaticfinalStringSQL="SELECT*FROMtable_name";....为此SQL查询使用了PreparedStatement。为什么?据我所知,PreparedStatement花时间预编译SQL语句。事实证明,Statement比PreparedStatement更快。还是我记错了? 最佳答案 当您必须使用不同的数据多次运行相同的语句时,准备好的语句要快得多。那是因为SQL只会验证查询一次,而如果您只使用一条语句,它将每次都验证查询。使用PreparedSt

java - 准备好的语句会显着减慢程序速度吗?

我正在编写一个软件,它要求我准备语句并设置值、执行查询并在循环中获取结果。这个循环可能有超过7,000个循环。如果我使用简单的语句而不是准备好的语句,执行速度会不会有很大的改变?这是伪代码准备陈述从某处获取列表遍历列表获取准备好的语句并进行一些数据库查询并关闭结果集等新资源。使用初始列表中的结果和值填充map谢谢。 最佳答案 如果您对多组数据重复使用相同的语句,则准备语句比非准备语句更快。我不知道这不是真的。一旦您准备好语句,它就会被发送到数据库服务器,然后数据库服务器只需在您每次调用它时接受数据——它不必在您每次绑定(bind)新