我使用java和jaybird驱动程序。在我之前使用jaybird 2.x的版本中,我使用GDS低级访问(服务API)连接服务器(没有连接db-part),以获取服务器版本字符串。
现在我尝试使用FB3 + jaybird3beta。 JB3中没有GDS API。正如我从文档中看到的那样 - 有3个实现的org.firebirdsql.util.FirebirdSupportInfo对象
static FirebirdSupportInfo supportInfoFor(Connection connection)
static FirebirdSupportInfo supportInfoFor(FbDatabase database)
static FirebirdSupportInfo supportInfoFor(GDSServerVersion serverVersion)
我看到了:
还有带有getConnection()函数的java.sql.DriverManager," 尝试与给定的数据库URL建立连接 "
所以,据我所知,如果没有连接到任何数据库,它无法获得服务器版本?或者我错过了什么?
或者如何仅使用server:port和给定的用户名/密码来获取服务器版本?
答案 0 :(得分:2)
与此答案的早期版本相反,它已经成为可能(我已经忘记了它)。要获取服务器版本,您可以使用org.firebirdsql.management.FBServiceManager
类:
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的问题。
顺便说一下:类org.firebirdsql.util.FirebirdSupportInfo
主要用于简化Jaybird本身的测试,以进行依赖于不同Firebird版本中引入的功能的测试。我们将它包含在分发包中,因为它可能对其他人有用。请记住,功能检查方法的结果并不一定意味着特定数据库可以使用此类功能,因为有时功能还需要特定的ODS(磁盘结构)版本的数据库文件。
披露:我是Jaybird的开发者。