有没有人actually将 Firebird 2.1 与 Spring JDBC 一起使用?
出于测试目的,我在 MySQL、Postgres 和 Firebird 中设置了三个简单的单表数据库。
我在连接 MySQL 或 Postgres 并获取数据时没有任何问题。
但我就是无法让 Firebird 工作。
我需要更改的只是 jdbc.properties 和 pom.xml 依赖项以获得正确的 .jar 文件。就是这么简单。
我知道我的连接参数是正确的对于 Firebird 数据库,因为我已经在最小的 Java 命令程序中检查了它们。我已经通过这种方式连接并读取数据。
我得到了 Firebird 的 StackTrace:
org.springframework.jdbc.CannotGetJdbcConnectionException:无法获取 JDBC 连接;嵌套异常是 org.apache.commons.dbcp.SQLNestedException:无法加载 JDBC 驱动程序类“org.firebirdsql.jdbc.FBDriver”,原因:javax/resource/ResourceException,原因:javax/resource/ResourceException
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:572)
很奇怪,我猜是某种冲突……
我想使用 Firebird,因为它是一个非常简单的数据库,但除非我解决这个问题,否则它将是 Postgres。
任何正确方向的帮助或指示将不胜感激。
好的,具体方法如下:
将以下内容添加到您的 pom.xml (两者都需要):
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird</artifactId>
<version>2.1.6</version>
</dependency>
<dependency>
<groupId>javax.resource</groupId>
<artifactId>connector-api</artifactId>
<version>1.5</version>
</dependency>
将 ApplicationContext 文件中的数据源设置为:
<bean id="dataSource"
class="org.firebirdsql.pool.FBWrappingDataSource"
p:database="${jdbc.database}"
p:userName="${jdbc.username}"
p:password="${jdbc.password}"
p:type="${jdbc.connection.type}"
p:maxPoolSize="5"
p:minPoolSize="1"
p:pooling="true" />
请注意,它使用 Firebird 特定池,而不是像其他数据库那样使用 org.apache.commons.dbcp.BasicDataSource。
请注意非标准参数名称。
这是我的 jdbc.properties 文件:
jdbc.driverClassName=org.firebirdsql.jdbc.FBDriver
jdbc.dialect=org.hibernate.dialect.FirebirdDialect
jdbc.database=/path/to/database.fdb
jdbc.username=admin
jdbc.password=*****
jdbc.defaultAutoCommit=false
jdbc.connection.type=TYPE4
我还不知道如何关闭自动提交。抱歉,我正在尝试找出答案。
为什么 Firebird 不像其他数据库那样将其设为标准?那么更多的人可能会使用这个很棒的小数据库......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)