问题标签 [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 回答
2942 浏览

sql - 与数据库无关的 jdbc 表导入/导出到文件?

是否有可能进行与数据库无关的表转储/水合物?我没有任何复杂的约束。我也会满足于特定于 db 的方式,但越纯 jdbc 越好(我不想诉诸 impdp/expdp)。

0 投票
3 回答
5803 浏览

java - SQL Server JDBC 可信连接身份验证如何工作?

SQL Server JDBC 可信连接身份验证如何工作?(即受信任的连接如何以如此透明和优雅的方式对登录的 AD 用户进行身份验证,以及如何在没有数据库连接或任何使用现有 SQL Server 解决方案的情况下,在 Java 中为我的客户端-服务器应用程序实现类似的身份验证解决方案.)

假设 * 在 Windows 2003 域中工作 * 您可以通过 JNI/JNA 访问 Windows API

0 投票
5 回答
14551 浏览

java - How to use MySQL prepared statement caching?

How do i take advantage of MySQL's ability to cache prepared statements? One reason to use prepared statements is that there is no need to send the prepared statement itself multiple times if the same prepared statement is to be used again.

When running the above Java example I see 5 pairs of Prepare and Execute commands in the mysqld log file. Moving the ps assignment outside of the loop results in a single Prepare and 5 Execute commands of course. The connection parameter "cachePrepStmts=true" doesn't seem to make any difference here.
When running a similar program using Spring and Hibernate the number of Prepare commands sent (1 or 5) depends on whether the cachePrepStmts connection parameter is enabled. How does Hibernate execute prepared statements to take advantage of the cachePrepStmts setting? Is it possible to mimic this using pure JDBC?
I was running this on MySQL Server 4.1.22 and mysql-connector-java-5.0.4.jar

0 投票
2 回答
6710 浏览

sql - 在 oracle.sql.TIMESTAMPTZ 和 DbUnit 的标准 JDBC 类之间进行转换

我正在运行 Oracle 10g 并有带有 Type_Name 的列

当膨胀成java类时,它们会变成

但是 DbUnit 无法处理将 Oracle 特定类转换为字符串以写入 XML。我想知道是否有任何简单的方法可以让我将这些 Oracle 特定时间戳(例如,在我的 SELECT 语句中)从这些 Oracle 特定时间戳转换为 java.sql 中的某些内容。

0 投票
2 回答
1770 浏览

database - 应用服务器数据源中的 JDBC 薄层加密

我遇到了一篇有趣的文章,它展示了我们如何使用 java 瘦客户端透明地加密 jdbc 连接。

http://javasight.wordpress.com/2008/08/29/network-data-encryption-and-integrity-for-thin-jdbc-clients/

但是我想知道如何为应用程序服务器(如 oc4j)数据源实现这一点。

0 投票
14 回答
110883 浏览

java - 如何从最后插入的行中获取值?

有没有办法从最后插入的行中获取值?

我正在插入一个 PK 会自动增加的行,我想得到这个 PK。只有 PK 保证在表中是唯一的。

我将 Java 与 JDBC 和 PostgreSQL 一起使用。

0 投票
12 回答
14523 浏览

java - 我应该捕获关闭 java.sql.Connection 时抛出的异常吗

Connection.close()可能会抛出SqlException,但我一直认为忽略任何此类异常是安全的(而且我从未见过不忽略它们的代码)。

通常我会写:

或者

问题是:

  1. 这是不好的做法(并且在忽略此类异常时是否有人遇到问题)。
  2. 什么Connection.close()时候抛出任何异常。
  3. 如果不好,我应该如何处理异常。

评论:

我知道丢弃异常是邪恶的,但我只提到关闭连接时抛出的异常(正如我所见,这在这种情况下相当普遍)。

有谁知道什么时候Connection.close()可以扔东西?

0 投票
2 回答
7332 浏览

java - SSH 的 java.sql.Connection 扩展

我在防火墙后面有一个 MySQL 数据库,只能通过 SSH 连接访问。有谁知道 java.sql.Connection 的实现,它允许我与这个数据库建立 SSH 连接?

0 投票
3 回答
4878 浏览

oracle - 为什么在通过 Oracle DBLINK 复制时 Char(1) 会更改为 Char(3)?

我有 2 个数据库,我想将包含 CHAR 列的现有表从数据库 A 传输到数据库 B。

数据库 A 是 Oracle 9i,编码为 WE8ISO8859P1,并包含一个表“foo”,其中至少有 1 列类型为 CHAR(1 char)。我无法更改数据库 A 上的表,因为它是第三方设置的一部分。

数据库B是我自己的Oracle 10g数据库,由于各种原因使用编码AL32UTF8,我想将foo复制到这个数据库中。

我设置了从数据库 B 到数据库 A 的数据库链接。然后发出以下命令:

*从#link#.foo中选择*创建表格栏;*

数据被很好地复制了,但是当我检查列的类型时,我注意到 CHAR(1 char) 已转换为 CHAR(3 char),并且在查询数据库 B 中的数据时,它都用空格填充.

我认为在水下某处,Oracle 混淆了它自己的字节和字符。CHAR(1 byte) 与 CHAR(1 char) 等不同。我已经阅读了所有这些内容。

为什么数据类型变为填充的 CHAR(3 char) 以及如何阻止 Oracle 这样做?

编辑:这似乎与在 Oracle 9 和 10 的两个特定补丁级别之间传输 CHAR 有关。看起来这确实是一个错误。一旦我发现我会发布更新。同时:不要尝试像我描述的那样在数据库之间移动 CHAR。VARCHAR2 工作正常(经过测试)。

编辑 2:我找到了答案并将其发布在这里: Why does Char(1) change to Char(3) when copying over an Oracle DBLINK? 太糟糕了,我不能接受自己的答案,因为我的问题已经解决了。

0 投票
2 回答
21074 浏览

java - 如何确定给定 JDBC 连接的数据库类型?

我需要处理返回三个数据库(Oracle、sybase、MS-Server)的存储过程/函数的结果集。过程/功能通常是相同的,但在 Oracle 中的调用略有不同。

JDBC 没有提供通用的方法来处理这个问题,所以我需要在我的代码中区分不同类型的 DB。我得到了连接,但不知道确定数据库是否是 oracle 的最佳方法。我可以使用驱动程序名称,但宁愿找到一种更简洁的方法。