草庐IT

jdbc-Statement

全部标签

java - 如何使用普通 JDBC 处理 J2EE 1.4 中的事务

我正在开发一个酒店预订网站。它是一个J2EE1.4Web应用程序,使用JSP和JDBC。我有一个负责预订酒店房间的方法。booking()从这个方法我调用了其他四个方法bookRooms()makePayment()confirmUserByMail()confirmUserBySMS()我知道两个用户可以尝试同时预订同一个房间,在我当前的系统中,两个用户最终可能会预订同一个房间。我应该如何处理事务以避免此并发问题?这可能是很常见的场景,但我以前从未处理过这种场景,所以请指导我。 最佳答案 最简单的方法是在代码中添加锁或使用数据库提

java - 受影响的 Oracle JDBC batchUpdate 行始终为 -2 (Statement.SUCCESS_NO_INFO)

我有一个执行批量更新语句的批处理。在使用SpringJDBC4.1.6和OracleJdbc驱动程序(ojdbc7和ucp)实现批处理支持后,单个更新请求(在批处理中)受影响的记录数始终检索为-2(Statement.SUCCESS_NO_INFO)。有什么方法可以知道单个更新请求(批量设置的参数)影响的行,因为在此之后我必须使用INSERT语句重试相同的参数??技术上尝试将其开发为UPSERT实现我用三种不同的方式尝试了这个批量更新,并且在所有三种方法中结果都是相同的——(它只是告诉我Statement.SUCCESS_NO_INFO(-2))方法一——直接UCP连接和Prepare

java - 具有自动重新连接功能的 JDBC 连接

我正在使用JDBC连接到数据库服务器。连接是通过无线网络进行的,有时可能会出现问题。在连接丢失的那一刻,我需要关闭并重新启动应用程序。有没有人有一些代码示例,我可以在其中编写某种包装器来自动重新连接并重新运行上一个查询?这会省去很多麻烦。我只是不确定它应该/可以如何实现。也许已经有可用的东西了? 最佳答案 即使您使用应用程序服务器提供的JDBC连接池或apache公共(public)池,也值得编写重试逻辑。根据您的应用程序服务器的配置,应用程序服务器将清除所有池中的连接并重新创建一组新的连接。这是一个示例:Connectioncon

Java:找不到适合 jdbc:h2 的驱动程序

我的一些代码有问题,我已经搜索并尝试了我所知道的一切,但没有任何运气。场景:应用程序检查JDBC驱动程序是否存在,在本例中为H2驱动程序(org.h2.Driver)。如果它不存在,应用程序将下载JDBC驱动程序并将其添加到类加载器中,如下所示:(注意:storageDataManager是我用于SQL方法的类)Fileh2Driver=newFile(directory.toString()+File.separator+"lib"+File.separator+"h2.jar");if(h2Driver.exists()){URL[]url=newURL[0];try{url=ne

java - JDBC 批量更新有何帮助?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。每个人都说批量更新减少了JDBC调用的次数。有人能解释一下“JDBC调用”是什么意思,以及与在一次JDBC调用中承载全部负载相比,增加此类调用的次数成本更高。

java - Postgres JDBC 驱动程序 : PSQLException: syntax error at or near RETURNING

出于某种原因,JDBCPostgreSQL驱动程序正在添加:RETURNING*到select语句的末尾。为什么?代码:protectedstaticfinalStringAUTH_QUERY="SELECT\"SECRET\"FROM\"user\"WHERE\"NAME\"=:name";Stringpassword=sql2o.open().createQuery(AUTH_QUERY).addParameter("name",username).executeScalar(String.class);异常:org.postgresql.util.PSQLException:ER

java - JDBC Oracle - 获取查询的解释计划

我想知道如何使用Java获取解释计划。我需要这个的原因是因为我们有一个框架,特殊用户可以在其中制作报告。这些报告有时会构建巨大的查询,我们想在其中即时解释并存储成本。这样我们可以稍后分析高成本查询并进行优化。给我非法列异常的示例代码:ResultSetrs=null;try{oracle=ConnectionManager.getConnection(ConnectionManager.Test);pstmt=oracle.prepareStatement("beginexecuteimmediate'explainplanforSELECT1fromDual';end;");rs=p

java - NoSql 数据库是否有任何 JDBC 实现?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我只是想知道是否有任何NoSql数据库(开源或专有)的JDBC实现(在某种程度上,尽可能多)?您认为这个实现是否有可能表现出与对应的NoSqlDB的原始API一样好的性能?哪些部分不能实现(事务?CallableStatements?等)?

Java JDBC 忽略 setFetchSize?

我正在使用下面的代码st=connection.createStatement(ResultSet.CONCUR_READ_ONLY,ResultSet.FETCH_FORWARD,ResultSet.TYPE_FORWARD_ONLY);st.setFetchSize(1000);System.out.println("startquery");rs=st.executeQuery(queryString);System.out.println("donequery");查询返回大量(800k)行,并且在打印“开始查询”和“完成查询”之间需要很长时间(~2m)。当我在查询中手动输入“

java - Java JDBC连接池如何使用?

我想使用JDBC连接池。最重要的因素是它易于使用且没有错误。什么适合我? 最佳答案 另一个不错的选择是ApacheDatabaseConnectionPool.您将使用JNDI命名服务从池中获取连接,而不是使用DriverManager获取连接。请务必关闭您的资源-Connection、Statement和ResultSet。否则,您的池将很快耗尽。 关于java-JavaJDBC连接池如何使用?,我们在StackOverflow上找到一个类似的问题: htt