草庐IT

preparedStatement

全部标签

java - 如何在准备好的语句java中插入大整数

我想使用准备好的语句插入一个大整数值,我有一个名为xid(41527820021925053)的字符串变量preparedStatement=conn.prepareStatement(sql);preparedStatement.setObject(1,XOBJ);preparedStatement.setObject(2,YOBJ);preparedStatement.setBigInteger(3,xid);preparedStatement.setInt(4,23);preparedStatement.executeUpdate();preparedStatement.clos

java - 在 Java 的线程中使用 PreparedStatements 是否正确?

我仍然是一名兼职工作的本科生,所以我一直在努力了解更好的做事方式。最近我不得不编写一个工作程序,其中程序的主线程将生成“任务”线程(对于每个数据库“任务”记录),这些线程将执行一些操作,然后更新记录以表明它已完成。因此,我需要ThreadedTask对象中或可用的数据库连接对象和PreparedStatement对象。这就是我最终写的大致内容,每个线程创建一个PreparedStatement对象是一种浪费吗?我认为静态PreparedStatments会造成竞争条件...ThreadAstmt.setInt();ThreadBstmt.setInt();ThreadAstmt.exe

java - JDBC PreparedStatement 中 "null primitives"的解决方法?

这个问题在这里已经有了答案:InsertingnulltoanIntegercolumnusingJDBC(2个答案)关闭4年前。使用原始JDBC时,您可以像这样参数化PreparedStatement:PreparedStatementstatement=connection.prepareStatement(someSQLString);StringsomeString=getSomeString();Integerint=getSomeInteger();statement.setString(1,someString);statement.setLong(2,5L);state

java - sonarqube 错误地报告 "PreparedStatement has no parameters."

sonarqube错误地报告以下(简化)源PreparedStatement没有参数。(鱿鱼:S2695):publicstaticfinalStringUPDATE_QUERY="UPDATETABLESETCOL1=?WHEREPK=?";privatePreparedStatementpreparedStatement=null;publicvoidupdateMethod(Datedate,Longpk){if(preparedStatement==null){//ConnectionServiceisnotaConnection!preparedStatement=Conne

java - 如何从 Oracle JDBC PreparedStatement 对象获取绑定(bind)参数的值

我想在使用OracleJDBC时使用实际绑定(bind)参数实现所有已执行语句的日志记录。而且我更希望我可以创建这样的日志记录方法,只将PreparedStatement对象作为参数传递。例如我创建了PreparedStatement并绑定(bind)了一个参数PreparedStatementps=conn.prepareStatement("SELECT*FROMemployeesWHEREemployee_id=?");ps.setInt(1,1);现在我希望能够从ps中获取我可以放入日志文件中的实际SQL语句“SELECT*FROMemployeesWHEREemployee_

java - 如何获取preparedstatement中的batch数?

我想这一定很简单。为此必须有一些方法。这就是我想要的:-PreparedStatementps=...ps.addBatch();ps.addBatch();ps.addBatch();logger.info("totalBatches:"+ps.someMethod());ps.executeBatch();结果将是:总批处理:3;如果没有这样的方法,那怎么办呢? 最佳答案 不支持此功能。但是您可以通过添加计数成员来包装Statement并覆盖addBatch()。如果使用ApacheCommonsDBCP,您可以从Delegat

java - 有没有更简洁的方法来使用 try-with-resource 和 PreparedStatement?

这是Main.java:packagefoo.sandbox.db;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;publicclassMain{publicstaticvoidmain(String[]args){finalStringSQL="select*fromNVPAIRwherename=?";try(Connectionconnection=DatabaseManager.getConnectio

java - HSQLDB 神秘异常消息 : "feature not supported"

我有JDBC代码,它通过执行PreparedStatement插入到数据库表中。当我在内存中的HSQLDB数据库上运行代码(作为JUnit测试的一部分)时,我得到一个SQLFeatureNotSupportedException,其中唯一的信息是消息“不支持的功能”和供应商代码-1500。我正在做的是对表进行基本插入——我无法想象最新的HSQLDB不支持这种操作。我的代码:publicObservationssaveOrUpdate(finalObservationsobservations){try{if(connection==null){connection=getJdbcTem

java - 关闭 PreparedStatements

是否每次使用PreparedStatements和ResultSets都会创建一个“新的数据库实例”?或者,换句话说,如果我使用PreparedStatement和ResultSet,我应该在每次使用后关闭它们还是在使用完后关闭它们?例子:while(...){p=connection.prepareStatement(...);r=p.executeQuery();while(r.next()){....}}//Wecloseattheend.Orthereareanyotherpandrstillopened...?p.close();r.close();或while(...){p

java - 预编译 JDBC PreparedStatement 有什么作用?

“预编译”语句有什么作用,因为我已经看到了如果我用错误的SQL语法编写编译不报告的准备好的语句任何问题!那么,如果预编译准备好的语句不检查语法有效性,它到底做了什么? 最佳答案 创建PreparedStatements可能涉及也可能不涉及SQL语法验证甚至数据库服务器往返,这完全取决于所使用的JDBC驱动程序。有些司机会进行往返或验证,有些则不会。因此在某些JDBC驱动程序上,PreparedStatement并不比普通的Statement更“准备”。(换句话说:对于某些JDBC驱动程序,PreparedStatement表示服务器