问题标签 [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.

0 投票
1 回答
1034 浏览

firebird - 找不到驱动程序类:org.firebirdsql.jdbc.FBDriver

我在从 firebird 2.1 更新到 2.5 时遇到问题。如果我这样做,系统会回复我:

无法连接到数据库。找不到驱动程序类:org.firebirdsql.jdbc.FBDriver

是 PATH 的问题吗?

0 投票
0 回答
417 浏览

phpstorm - 区分大小写的下部表格和列

是否可以返回区分大小写的表名和列名?

0 投票
3 回答
6820 浏览

firebird - 连接被拒绝:未指定连接字符集(属性 lc_ctype、编码、charSet 或 localEncoding)

当我尝试使用 dbeaver 连接到 Firebird 数据库时,会显示此错误:

在此处输入图像描述

连接被拒绝:未指定连接字符集(属性 lc_ctype、编码、charSet 或 localEncoding)。请指定连接字符集(例如属性 charSet=utf-8)或查阅 Jaybird 文档以获取更多信息

0 投票
1 回答
189 浏览

java - Use WildFly module both datasource and connectionFactory

I have a module in Wildfly to use as my datasource to Firebird. It works great

and the jar is put inside the directory of module.xml.

But I want to use the driver both with data source and also to create a pure JDBC connection in connectionfactory like Class.forName("org.firebirdsql.jdbc.FBDriver");, not using data source provided by the server.

If I put jaybird in pom.xml I got errors. I think because this is duplicating the libs. How can I solve this?

0 投票
1 回答
2858 浏览

firebird - GDS 例外。335544421. 连接被远程接口拒绝

我正在尝试使用 jaybird jdbc 驱动程序连接到 firebird db。Firebird 在 ubuntu 下运行。我在 /tmp/hellofb.fdb 下创建了一个简单的数据库(是的,这不是最好的地方,只是为了测试)。我正在运行火鸟超级服务器 3.0。firebird 服务已启动并正在运行sudo service firbird3.0 status

我的 spring boot application.properties 由:

但是,当我尝试连接到数据库时,出现以下异常:

我已经尝试了jaybird FAQ给出的所有可能的排列,但我已经没有选择了。任何帮助将不胜感激!

注意:我尝试使用flarerobin连接到数据库,一切正常

0 投票
1 回答
1228 浏览

java - Java JDBC 类型转换(Firebird / Jaybird):在使用 getter 或 updater ResultSet 方法之前检查值/类型兼容性?

如果我理解(并测试示例 JDBC 代码;使用 Jaybird for Firebird)很好,即使使用正确的(= 尊重类型映射)更新程序方法(例如ResultSet.updateString)或PreparedStatement参数,也会带来“转换异常”。

在实际使用结果集(例如运行更新程序方法)之前测试实际的 Java 类型/值是否可以安全地转换为目标 SQL 数据类型,是否有可能(并且这是一个好习惯)?

“问题”只是一种方式吗?即从SQL 转换回Java 时(使用getter 方法),是否保证正确的getter 方法永远不会失败(由于转换问题)?

我的示例(使用 Jaybird 3.0.2、JDK1.8):

  • 我需要更新字段:NUMERIC(9,2). 对应的更新器是: ResultSet.updateBigDecimal(int columnIndex, BigDecimal x). 如果我使用x = new BigDecimal("123456789.1234")(更大的精度和规模),我(逻辑上)得到一个异常: 线程“主”org.firebirdsql.jdbc.field.TypeConversionException 中的异常:转换为大十进制时出错。
  • 我需要更新字段:VARCHAR(5). 对应的更新器是:ResultSet.updateString(int columnIndex, String x). 如果我使用x = "123456"(更长的字符串 6 > 5),我(逻辑上)得到一个异常:线程“main”java.sql.DataTruncation 中的异常:数据截断。

除了尝试运行查询和捕获异常之外,是否有一些通用的优雅方式(不取决于特定类型)如何检查实际的 Java 值/对象是否可以“保存”到某些 SQL 字段?

我想检查我的数据编辑对话框中已经存在的值(在实际运行更新查询之前)。简单的测试“VALUE OK / NOT OK”就可以了(只知道目标 SQL 类型)。

对我来说似乎很难找到我必须检查“按类型”检查的所有规则(即对于 VARCHAR 检查字符串长度,对于 NUMERIC 检查精度和比例等 - 但还有什么?或者这就足够了?对于整数和浮动类型不需要检查任何东西?)。

我试图浏览 Jaybird 源代码,但“转换过程”非常复杂(并且特定于类型),我自己找不到答案。

0 投票
1 回答
690 浏览

firebird - 如何设置嵌入式 Firebird 并从 Java 应用程序访问?

我在某个目录中有一个 Firebird 数据库文件 test.fdb,我想从 java 应用程序访问数据库。需要访问哪些库文件。

我正在使用 Jaybird JDBC 驱动程序访问嵌入式 Firebird 数据库,但出现错误

线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 jaybird22_x64

我尝试下载并添加 jaybird22_x64.soSystem.setProperty("java.library.path", "/home/sk/Desktop/Jaybird/"); 文件System.load() and -Djava.library.path

jaybird 文件夹包含文件 jaybird22_x64.so 文件。

我正在使用 Ubuntu 17.04,与kernel 4.10.0-42-generic

这是我得到的例外。

java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) 的 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) 的 java.lang.Runtime.loadLibrary0(Runtime.java:870) 的线程“main”中的异常 java.lang.UnsatisfiedLinkError: no jaybird22_x64在 java.lang.System.loadLibrary(System.java:1122) 在 org.firebirdsql.gds.impl.jni.JniGDSImpl.initJNIBridge(JniGDSImpl.java:64) 在 org.firebirdsql.gds.impl.jni.JniGDSImpl.( JniGDSImpl.java:25) 在 org.firebirdsql.gds.impl.jni.EmbeddedGDSFactoryPlugin.getGDS(EmbeddedGDSFactoryPlugin.java:40) 在 org.firebirdsql.gds.impl.GDSFactory.getGDSForType(GDSFactory.java:275) 在 org.firebirdsql .jca.FBManagedConnectionFactory.getGDS(FBManagedConnectionFactory.java:123) 在 org.firebirdsql.jdbc.AbstractDriver.connect(AbstractDriver.java:130) 在 java.sql.DriverManager.getConnection(DriverManager.java:664) 在 java.sql.DriverManager.getConnection(DriverManager.java:247) 在 test.TestJavaFireBird.main(TestJavaFireBird.java:33)

谁能帮忙,需要哪些库以及如何加载它们?

0 投票
0 回答
656 浏览

java - Firebird - 存储过程 - 如何在插入一行后执行 Java 程序(Java 存储过程)

我想为表上的触发器运行一个 Java 程序(插件),比如在插入之后。如何创建数据库触发器,以实现这一点并在表中插入一行时执行 java 程序。

我在一些文档中看到,可以在上述数据库事件上调用 Java 程序(ON INSERT/UPDATE)。但我可以找到实现这种技术的过程。

Java调用的参考来自以下链接:

  1. FB/Java第一个测试版,兼容Firebird 3.0.0 https://www.firebirdsql.org/en/news/the-first-test-version-of-fb-java-compatible-with-firebird-3 / FB/Java 是 Firebird 的 External Engine 插件,它使 Firebird 能够运行在 Java 平台上制作的函数、过程和触发器。

  2. Firebird 3.0 中的新功能 https://firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-new.html 最终,插件支持用 Java、C++、ObjectPascal 编写的存储过程、触发器和函数,等等

  3. Java中的UDR https://www.firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-apiods-api.html#d0e5446 Firebird 3支持外部引擎,引擎和执行环境之间的桥梁,可以运行 UDR:本机代码、Java 和其他

感谢文档链接和示例示例方面的任何帮助。我在 Windows 7 64 位上使用 Firebird-3.0.2。

0 投票
0 回答
45 浏览

jboss - 通过 Jaybird 2.214-jdk1.6 连接 jboss 4 和 Firebird 3

我最近更新了一个 firebird 1.5 数据库,该数据库在 jboss 4 环境中使用 java 1.4 到 firebird 3。从数据库端升级工作正常。但似乎我在将它连接到 jboss 4 时遇到了问题。

到目前为止我做了什么: 我将 jaybird.war 文件复制到了 jboss 的部署目录中。我将 jaybird*.dll 文件复制到默认文件夹的 lib 文件夹中(它是一个 win10 操作系统)。jaybird.zip 中的 lib 文件夹也被复制到 jboss 的那个 lib 文件夹中。

jboss 的 firebird-ds.xml 文件(也被 firebird 1.5 db 使用)如下所示:

会发生什么?: 服务器正在启动。但是在第一个表操作之后,我收到了结果集已关闭的日志信息。

我认为这是 local-tx-datasource 设置的问题。因为sql语句不依赖于版本。(我也测试过)。该条目是必要的,因为如果我删除它,我会收到一条(有据可查的)错误消息,表明用户不存在。有没有人提示如何正确配置数据源?非常欢迎任何帮助!

0 投票
1 回答
1005 浏览

jdbc - 使用 HikariCP 正确设置 jaybird/Firebird 数据源

我正在尝试使用 Spring Data JPA、Hibernate 和 HikariCP 连接池与在 Windows 上运行的 Firebird DB 建立成功连接。我已经让所有东西都能在其他符合 JDBC 的数据库(H2、Derby、MySQL 等)上正确运行,但是当我将驱动程序 .jar 切换到 Firebird 时,我得到:

这是我的 Spring application.properties 的摘录:

我已经使用其他一些 Firebird 类进行了测试,这些类似乎为 spring.jpa.properties.hibernate.hikari.dataSourceClassName 属性实现了 javax.sql.DataSource,但都给出了无法连接异常的变体。