获取 Firebird 服务器版本信息
Get Firebird server version info
我使用 java 和 jaybird 驱动程序。在我之前使用 jaybird 2.x 的版本中,我使用 GDS 低级别访问(服务 API)来连接服务器(没有 db-part 连接),以获取服务器版本字符串。
现在我尝试使用FB3 + jaybird3beta。 JB3中没有GDS API。正如我从文档中看到的那样 - 有 org.firebirdsql.util.FirebirdSupportInfo 个具有 3 个实现的对象
static FirebirdSupportInfo supportInfoFor(Connection connection)
static FirebirdSupportInfo supportInfoFor(FbDatabase database)
static FirebirdSupportInfo supportInfoFor(GDSServerVersion serverVersion)
如我所见:
- GDSServerVersion - 表示 Firebird 服务器版本的对象(已经以某种方式获得)。
- FbDatabase - 数据库的连接句柄。
- 连接 - 某种 "connection"。所以挖斗:
还有 java.sql.DriverManager 具有 getConnection() 函数的“
尝试建立 到给定数据库 URL"
的连接
因此,据我了解,在不连接任何数据库的情况下无法获取服务器版本?或者我错过了什么?
或者如何仅使用 server:port 并给定 username/password 获取服务器版本?
与此答案的早期版本相反,这已经是可能的(我已经忘记了)。要获取服务器版本,您可以使用 org.firebirdsql.management.FBServiceManager
class:
FBServiceManager manager = new FBServiceManager();
manager.setHost("localhost");
manager.setUser("sysdba");
manager.setPassword("your password");
System.out.println(manager.getServerVersion());
此方法当前未在接口定义中公开 ServiceManager
,我已创建票证 JDBC-484 以解决 Jaybird 3.0.0 final 的此问题。
顺便说一句:class org.firebirdsql.util.FirebirdSupportInfo
主要是为了简化 Jaybird 本身的测试,以便测试依赖于不同 Firebird 版本中引入的功能。我们将它包含在分发包中,因为它可能对其他人有用。请记住,功能检查方法的结果并不一定意味着特定数据库可以使用此类功能,因为有时功能还需要数据库文件的特定 ODS(磁盘结构)版本。
披露:我是 Jaybird 的开发者。
我使用 java 和 jaybird 驱动程序。在我之前使用 jaybird 2.x 的版本中,我使用 GDS 低级别访问(服务 API)来连接服务器(没有 db-part 连接),以获取服务器版本字符串。
现在我尝试使用FB3 + jaybird3beta。 JB3中没有GDS API。正如我从文档中看到的那样 - 有 org.firebirdsql.util.FirebirdSupportInfo 个具有 3 个实现的对象
static FirebirdSupportInfo supportInfoFor(Connection connection)
static FirebirdSupportInfo supportInfoFor(FbDatabase database)
static FirebirdSupportInfo supportInfoFor(GDSServerVersion serverVersion)
如我所见:
- GDSServerVersion - 表示 Firebird 服务器版本的对象(已经以某种方式获得)。
- FbDatabase - 数据库的连接句柄。
- 连接 - 某种 "connection"。所以挖斗:
还有 java.sql.DriverManager 具有 getConnection() 函数的“ 尝试建立 到给定数据库 URL"
的连接因此,据我了解,在不连接任何数据库的情况下无法获取服务器版本?或者我错过了什么?
或者如何仅使用 server:port 并给定 username/password 获取服务器版本?
与此答案的早期版本相反,这已经是可能的(我已经忘记了)。要获取服务器版本,您可以使用 org.firebirdsql.management.FBServiceManager
class:
FBServiceManager manager = new FBServiceManager();
manager.setHost("localhost");
manager.setUser("sysdba");
manager.setPassword("your password");
System.out.println(manager.getServerVersion());
此方法当前未在接口定义中公开 ServiceManager
,我已创建票证 JDBC-484 以解决 Jaybird 3.0.0 final 的此问题。
顺便说一句:class org.firebirdsql.util.FirebirdSupportInfo
主要是为了简化 Jaybird 本身的测试,以便测试依赖于不同 Firebird 版本中引入的功能。我们将它包含在分发包中,因为它可能对其他人有用。请记住,功能检查方法的结果并不一定意味着特定数据库可以使用此类功能,因为有时功能还需要数据库文件的特定 ODS(磁盘结构)版本。
披露:我是 Jaybird 的开发者。