问题标签 [jaybird]
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.
java - 如何将字符串变量添加到 jdbc firebird 连接上的 SQL 查询
我正在尝试从 Java 应用程序查询 Firebird 数据库。此查询包含 2 个整数变量和 1 个字符串。查询如下所示:
看起来它ResultSet
是空的,但是当我使用硬编码的字符串值而不是变量时,我得到了预期的结果。
我也用相同的结果尝试了这个preparedstatements
- 它只在没有字符串变量的情况下工作。
任何想法我做错了什么?
编辑:问题解决了!Stringvariable 来自 BLOB 字段,其中包含一些空值。调用修剪功能删除了那些。
java - 为什么我的 Java JDBC 到 Firebird 数据库的连接不会断开?
我正在使用以下代码连接到 firebird 数据库
...以及以下断开连接:
我正在使用在 Windows 7-32 位计算机上运行的 Firebird 2.1,Java 版本 1.7、Jaybird 版本 2.2.8、Tomcat 版本 7.xx 在 Win7-32 位上运行,浏览器是 Chrome 版本或其他(新)运行 Win XP SP3。
我使用名为 IBExpert 的第三方工具来查看连接数和/或运行以下语句:
当我在 .close() 语句运行后查看与数据库的连接数时,该数量并没有减少。这是为什么?如果我等待的时间足够长,或者 Tomcat 服务器重新启动,连接数确实会减少。关闭浏览器不会影响连接。
java - 在 UUID 字段上使用 JPA 的 Jaybird(char(16) 字符集八位字节)
我对域定义的 UUID ID 字段有疑问
我已将 jpa 的 AttributeConverter 定义为 import java.util.UUID;
并将 jpa 字段定义为
但是 jpa (Eclipselink+Eclipse Gemini) 给出错误,因为它试图转换的不是二进制表示而是 36 个字符的文本形式
我想问题是 jaybird 给出的字段类型为 CHAR(16),(我已经检查过 ResultSetMetaData),我知道有选项octetsAsBytes
,我已经将它与 jbdc url 一起使用
没有结果。
我的设置很复杂
所以我认为当 ResultSetMetaData 会给我字段类型为 BINARY 时,问题就会消失。但是怎么做?有什么建议么。
我只是不想将 id 保存为 char(32) 或 char(36)。
编辑:切换到 Jaybird 3.beta-2 后,可以清楚地看到第三行invalid stream header: F1505533
。这是一部分 ASCII 解码的 id(char(16) 字符集八位字节)。如何让 JPA 接受这个值作为原始字节并将其传递给 UUIDAttributeConverter 类??!!
java - 使用 Firebirdsql 连接 JDBC
我在连接 firebirdsql 时遇到问题。这是我的代码。
得到一个像这样的错误。
java.lang.ClassNotFoundException:org.firebirdsql.jdbc.FBDriver
spring - 春天+火鸟
有人成功将 spring 连接到 .gdb 数据库或 .fdb 数据库吗?我需要一点帮助来执行一些查询并将其显示在屏幕上。互联网上几乎没有关于将spring连接到firebird的信息......
谢谢
java - 将数据插入数据库时出错
我试图将我的数据插入到名为 newdevice 的数据库表名中。我的查询是:
但是当我这样做时,我遇到了这个错误:
org.firebirdsql.jdbc.FBSQLException:GDS 异常。335544569. 动态 SQL 错误 SQL 错误代码 = -104 令牌未知 - 第 1 行,第 106 列
(,) 用逗号显示错误。
java - 获取 Firebird 服务器版本信息
我使用 java 和 jaybird 驱动程序。在我之前的 jaybird 2.x 版本中,我使用 GDS 低级访问(服务 API)来连接服务器(没有连接 db-part),以获取服务器版本字符串。
现在我尝试使用 FB3 + jaybird3beta。JB3 中没有 GDS API。正如我从文档中看到的那样 - 有 org.firebirdsql.util.FirebirdSupportInfo 对象具有 3 个实现
如我所见:
- GDSServerVersion - 代表 Firebird 服务器版本的对象(已经以某种方式获得)。
- FbDatabase - 到数据库的连接句柄。
- 连接 - 某种“连接”。所以挖北斗:
还有带有 getConnection() 函数的 java.sql.DriverManager “尝试建立到给定数据库 URL的连接”
那么,据我了解,如果没有连接到任何数据库,它就无法获取服务器版本?还是我错过了什么?
或者如何仅使用 server:port 和给定的用户名/密码来获取服务器版本?
java - Jaybird 3 和 Firebird 交易信息
在以前版本的 jaybird (2.2) 中,我能够对 Firebird 服务器执行服务 API 以获取活动事务标记:OIT、OAT、Next 等。
在 3.0 版中,我不知道如何正确执行此操作。只有 ISC 常量(如 isc_info_oldest_snapshot)但没有方法。
所以,我看到了一种方法:通过 .Get 查询数据库标头StatisticsManager
。但这并不容易,因为它会返回需要解析的文本:
现在我需要解析文本:
是否有可能获得直接价值?
更新:旧版本的代码是:
在哪里
够了吗?
java - Jaybird 3 和数据库文件属性(页面大小、SQL 方言、ODS 主要/次要)
在 jaybird 2 版本中,我可以通过 gds isc_info_page_size 获取数据库页面大小。但现在我找不到了——在 jaybird 3.0 中可以做到这一点吗?我有主机:端口、数据库文件名/别名和登录名/密码——我不想使用 MON$-tables。
我看到文档,只发现 FBManager 可以返回 int getPageSize() 但文档说:创建数据库时要使用的页面大小,如果使用数据库默认值,则为-1 。
但是我有一个现有的数据库,并且想要现在它的页面大小。可以在不获取统计信息和解析标头信息的情况下完成吗?
PS。如果您指出我如何了解数据库 SQL 方言和 ODS 版本,也会很有帮助
firebird - Jaybird 3 和默认代码页通过属性
我继续使用 jaybird 3 挖掘(或玩)并得到已知错误“原因:java.sql.SQLNonTransientConnectionException:连接被拒绝:未指定连接字符集(属性 lc_ctype、编码、charSet 或 localEncoding)。请指定连接字符集(例如属性 charSet=utf-8)或查阅 Jaybird 文档以获取更多信息。”
所以,请帮助我做错了什么,我必须做什么。
第一次尝试
这很好用。但是如果我不想(或不能)更改连接字符串怎么办?
正如我在常见问题解答中看到的:https ://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html我使用选项运行我的 java 应用程序(来自 netbeans)
/li>
但得到了同样的错误。那么好吧。可能是我在netbeans中做错了什么......
我尝试通过属性使用连接选项。所以。我改变我的代码:
/li>
运行应用程序 - 并得到同样的错误....我不能从属性传递“lc_ctype”?还是我没明白什么?