问题标签 [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 - 配置 IReport 和 Firebird
我正在使用 iReport 进行碧玉报告。我的后端数据库在 firebird 中。我正在尝试使用 firebird 配置 iReport,但未能成功。我在 iReport GUI 的类路径中添加了 firebird jar 文件。之后,我在 iReport 的服务中添加了 firebird。服务窗口向我显示了 firebird 驱动程序。之后,当我右键单击驱动程序然后使用选定连接时,我得到一个窗口,我必须在其中放置我的凭据。
当我单击确定按钮时。我的 iReport 进入连接数据库模式,很长一段时间后它没有响应。它仍然连接到火鸟。
sql - 插入或更新查询成功执行,但数据不持久
我正在尝试使用 JDBC 在现有的 firebird 数据库中插入或更新元素。我使用默认凭据( SYSDBA和masterkey )访问数据库。
请求根据 JDBC 成功完成,但数据库没有被修改(当我执行选择时,我的数据没有出现)。我还尝试使用 RazorSQL 软件修改数据库内容,结果是一样的(数据库在会话期间被修改,但如果我断开连接并重新连接到数据库,我的修改将丢失)。
我有人知道如何解决这个问题吗?
提前致谢
java - 在 Firebird 中将 ResultSet 光标移回
我正在使用火鸟。我知道在 Firebird 中我们不能将结果集光标移回。仅支持TYPE_FORWARD_ONLY
,TYPE_SCROLL_INSENSITIVE
尚不支持。在我的应用程序中,我想像使用 this 一样将结果集游标移回一排resultSet.previous()
。我想知道是否有任何方法可以将光标移回。
查看 Firebird 的文档:
JDBC 3.0 规范定义了三种类型的结果集
- TYPE_FORWARD_ONLY:结果集不可滚动,光标只能向前移动。当使用 TRANSACTION_READ_COMMITTED 隔离级别时,结果集将返回在 ResultSet.next() 调用时满足搜索条件的所有行。在其他情况下,结果集将仅返回在事务开始时可见的行。
- TYPE_SCROLL_INSENSITIVE:结果集是可滚动的,游标可以前后移动,可以定位在指定的行上。只有在查询执行时满足条件的行才可见。
- TYPE_SCROLL_SENSITIVE:Firebird 和 Jaybird 不支持。驱动程序允许应用程序请求这种类型的结果集,但是根据 JDBC 规范,该类型被“降级”为以前的类型,并且相应的警告被添加到连接对象中。
由于 Firebird 中缺少对可滚动游标的支持,它们的支持(TYPE_SCROLL_INSENSITIVE结果集类型)是通过将完整的结果集获取到客户端来实现的。滚动发生在客户端的内存中。当结果集很大时,这会对系统内存使用和性能产生不利影响。
这只是我认为会有所帮助的一段代码:
从聊天中,用于创建的代码Statement
是:
java - SQL Firebird implementation in java/ IBSQL
so tried to put that SQL code into my java-aplication:
The code is fully funcional and tested in IBSQL but not working in my java-application. My app does work properly with other code. I get this error:
I would be very happy if someone could help me with this problem. Thanks! P.S.: Sorry for my bad language, but i´m not a native speaker
java - 在获取输出参数之前,Jaybird CallableStatement 不执行
我有这个Java
代码:
存储过程rm_set_coordinates
在哪里:Firebird
当我执行此代码时,ref_car
表中的数据没有改变。但是,如果我将此行添加到上面的代码中:
返回oresult
输出参数的值然后没关系,ref_car
表中的数据被更新。
java - Jaybird / JDBC + 路径中的国家字符
我正在使用 Java 中的 Firebird 数据库。一切正常,但如果数据库文件路径包含国家字符,我连接到我的数据库时遇到问题,例如。“á”或“č”。
示例异常:
路径正确,数据库存在。Jaybird / JDBC 路径中的“á”字符有问题。
任何想法如何解决它或问题出在哪里?感谢所有回复。
操作系统:Windows 7 Pro 64 位
JDK:1.7.0.25
Jaybird:2.2.3
java - 如何使用休眠配置 Jaybird
我将 jaybird 2.2.3 与 hibernate 3.5 一起使用,当我使用向导休眠映射文件和 pojos 数据库时,出现以下错误“java.lang.NullPointerException”
我使用与 mysql 相同的映射并且它工作正常,所以我相信它是 jaybird 中的东西
编辑:
有人能帮我吗?
java - 使用 `META-INF/services` 进行驱动程序的内部管道
我开发了 Jaybird JDBC 驱动程序,今天我遇到了一个问题(JDBC-325,如何使用休眠配置 Jaybird),该问题与 Jaybird 如何加载其某些组件以及如何(在这种情况下)NetBeans 限制类加载有关。
该问题与 Jaybird 使用条目加载自身部分的方式META-INF/services
以及 NetBeans 用于 Hibernate 向导的类加载器显式忽略这些文件有关(请参阅下面的详细信息)。
我可以通过(也)尝试加载作为 Jaybird 实现的一部分的插件的硬编码列表,或者通过将定义移动到不同的位置来解决这个问题。
但是我想知道像 Jaybird 那样用于内部目的是否很奇怪(或错误)META-INF/services
?
我也不明白为什么 NetBeans 会排除加载META-INF/services
? Drew的评论似乎表明 NetBeans 在加载驱动程序时使用它来解决错误(请参阅此问题),尽管我认为用户会更好地解决包括驱动程序的所有依赖项在内的问题。
问题详情
Jaybird 为支持的协议使用插件,例如 Type 4 协议、自定义 Type 4 Open Office 协议、Type 2 嵌入式(本机)协议和 Type 2 本机客户端协议。我还相信第三方曾经使用它来提供将 Oracle 特定语法转换为 Firebird 语法的驱动程序。
所有这些插件都在中列出META-INF/services/org.firebirdsql.gds.impl.GDSFactoryPlugin
并以类似于java.util.ServiceLoader
(当前 2.2.x 驱动程序仍支持 Java 5,因此我们实际上不使用ServiceLoader
)的方式加载。对于即将发布的版本,我还计划将其用于支持的连接编码和(有线)协议定义。这将允许“自定义”编码定义(例如扩展支持的编码,或使用替代编码)或不同的协议实现(例如,用于故障排除、自定义日志记录等)。
现在实际的问题是 Netbeans 向导Hibernate 映射文件和来自数据库的 POJO使用自定义类加载器(org.netbeans.modules.hibernate.util.CustomClassLoader
),并且这个类加载器忽略META-INF/services
. 请注意,只有这个向导有问题,Netbeans 本身可以毫无问题地使用驱动程序。
代码忽略META-INF/services
:
这导致没有插件被发现并且驱动程序没有协议,这导致NullPointerException
内部 Netbeans,因为没有创建连接。
java - firebird.FBManager 未找到
我不知道怎么去org.firebirdsql.management.FBManager
上班。
我使用 Jaybird 驱动程序 2.2.2,我得到的消息是:
包 org.firebirdsql.management 不存在
我可以连接到现有的数据库,但是当我尝试使用 FBManager 时,我遇到了这个错误。
java - 使用 jaybird 向 Firebird 用户授予权限
我确实通过 FBUserManager.add(user) 在 Firebird 中成功创建了一个新用户。我也成功连接了我已经创建的数据库。我不能如何运行查询,我得到了消息:
“org.firebirdsql.jdbc.FBSQLException:GDS 异常。335544352。没有读取/选择访问表的权限”
我的理解是新创建的用户没有运行命令的正确权限。我知道如何直接在 firebird 中授予权限。但我需要使用 jaybird 从 java 程序中完成,有谁知道如何做到这一点?