问题标签 [jdbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
747 浏览

java - jdbc:我什么时候可以关闭什么

目前我有以下基本结构的jdbc代码:

获取连接

(接下来的 4 行执行几次,从不关闭语句)
get 语句
获取结果集
处理结果集
关闭结果集

紧密连接

编写此代码后,我突然想到我需要关闭该语句。
1 不关闭语句有什么影响。
2 下面的工作,这个 si 会关闭语句阻止我正常处理结果集吗?

获取连接

(多次执行接下来的 5 行)
get statement
get result set
close statement
process result set
close result set

紧密连接

0 投票
1 回答
3447 浏览

oracle - Oracle 单表常量使用 JDBC 与 CLOB 合并

作为这个问题的后续行动,我需要以下情况的帮助:

在 Oracle 中,给定一个简单的数据表:

我正在使用以下合并命令:

我正在通过 Java 应用程序中的 JDBC 调用查询。

当 "value" 字符串很大时,上面的查询会导致以下 Oracle 错误:

我什至设置了此处记录的“SetBigStringTryClob”属性,结果相同。

鉴于“价值”是 CLOB,是否有可能实现我想要的行为?

编辑:客户端环境是 Java

0 投票
5 回答
18976 浏览

performance - ORM 解决方案(JPA;Hibernate)与 JDBC

我需要能够在内存 HSQL 数据库中以每 5 秒至少 8000 个对象的一致速率插入/更新对象。

我在 Spring/Hibernate/JPA 和纯 JDBC 之间做了一些比较性能测试。我发现使用 HSQL 在性能上有显着差异。使用 Spring/Hib/JPA,我可以在 5 秒内插入 3000-4000 个 1.5 KB 对象(具有一对多和多对多关系),而直接JDBC 调用我可以插入 10,000-12,000 个相同的对象。

我无法弄清楚为什么会有如此巨大的差异。我已经调整了 Spring/Hib/JPA 设置很多,试图在没有运气的情况下接近性能。我想将 Spring/Hib/JPA 用于未来用途、可扩展性,并且因为外键关系(一对多和多对多)难以手动维护;但性能要求似乎指向使用纯 JDBC。

关于为什么会有如此巨大的差异的任何想法?

0 投票
1 回答
3953 浏览

java - 如何从 Java 应用程序禁用 SQL Server jdbc 驱动程序日志记录?

当我将应用程序日志级别更改为 FINE 时,SQL Server 日志也​​会使用它,因此,我会收到很多不必要的日志消息。如何关闭 SQL Server 日志消息?

0 投票
2 回答
420 浏览

jdbc - 为集成测试煽动数据库失败

在运行集成测试(在这种情况下,Web 服务与 JDBC 通信)时,如何强制数据库抛出错误,以便检查产生的肥皂错误?

我正在使用 Spring 的事务测试框架,所以仅仅发出一个DROP TABLE whatever;来破坏它是不合理的吗?:D

0 投票
1 回答
2797 浏览

oracle - 最好的 4 类 Oracle JDBC 驱动程序是什么?

最好的 4 类 Oracle JDBC 驱动程序是什么?

我想要的是:

  • 稳定,bug少,修复快
  • 应该警告常见的 JDBC 陷阱(连接泄漏等)
  • 必须支持 CLOB

[编辑] 我对“免费”Oracle Type 4 驱动程序的主要问题是:

  • 我花了两周时间寻找 CLOB 支持代码中的游标泄漏(关闭流不会关闭底层游标)
  • 从 ResultSet 中获取值时,必须按顺序处理它们(因此在获取第 4 列后无法再获取第 3 列)
  • 结果集上的 getMetaData() 直到获取第一行后才起作用。
  • 还有许多其他错误和缺陷,但我不再记得它们了。

所以总而言之,一个每个座位花费​​我 1,000 美元的司机比甲骨文的“免费”司机更“便宜”。该驱动程序唯一的好处是我不必将数据库放入 TNSNAMES 中,并且我可以使用单个驱动程序访问 Oracle 8、9 和 10。这就是我问的原因。

0 投票
12 回答
62169 浏览

java - 如何在 java 中对 jdbc 代码进行单元测试?

我想为连接到数据库的一些代码编写一些单元测试,运行一个或多个查询,然后处理结果。(没有实际使用数据库)

这里的另一位开发人员编写了我们自己的 DataSource、Connection、Statement、PreparedStatement 和 ResultSet 实现,它们将根据 xml 配置文件返回相应的对象。(我们可以使用伪造的数据源并针对它返回的结果集运行测试)。

我们在这里重新发明轮子吗?单元测试是否已经存在类似的东西?还有其他/更好的方法来测试 jdbc 代码吗?

0 投票
2 回答
2342 浏览

java - 从 Java 代码访问 ColdFusion 数据源

我有一个 servlet,我想在 ColdFusion MX 7 中运行。如果可能,我想利用现有的 ColdFusion DSN 作为 javax.sql.DataSource。

我想像

会工作,但不幸的是servlet返回

0 投票
3 回答
13766 浏览

sql-server - SQL2000 中的 BCP 输出错误:SQLState = 37000,NativeError = 4060

我创建了一个 proc 来获取我机器上本地数据库中的所有用户表。我希望能够使用 BCP 和 SQL 创建我所有表的平面文件。它是通过 Windows 身份验证连接的 SQL 2000 中的虚拟数据库。我在 WinXP SP2 中设置了我的环境路径变量。我创建了新用户来访问数据库,关闭了我的防火墙,使用受信任的连接。我已经尝试了几十个论坛,没有运气。

在 dos 命令提示符下,我得到了同样的错误。

SQLState = 37000,NativeError = 4060 错误 = [Microsoft][ODBC SQL Server Driver][SQL Server]无法打开登录“[HelpDesk-EasyPay”中请求的数据库。登录失败。

这是我的SP:

任何人都可以建议。这似乎是连接问题或 BCP ?没有把握。

编辑:我从查询分析器运行它,因为我有 118 个表要输出到平面文件。我似乎同意这是一个身份验证问题,因为我尝试使用用户名 sa 密码 root 连接到主数据库。这是它的设置,我得到同样的错误: SQLState = 37000, NativeError = 4060

0 投票
3 回答
1860 浏览

java - 了解 JDBC 内部结构

[1] 在 JDBC 中,为什么要首先使用 Class.forName("some driver name") 加载驱动程序。为什么 SUN 不负责在 getConnection() 方法本身中加载驱动程序。如果我将驱动程序名称作为参数传递给 getConnection() 方法。

[2] 我想了解 JBDC 内部。任何指向它的指针都值得赞赏。