在Spring中使用FireBird2.1的中,是否有人真正使用了?
出于测试目的,我在MySQL、Postgres和Firebird中设置了三个简单的一个表数据库。
从MySQL或Postgres连接和获取数据没有问题。
但我就是不能让火鸟工作。
我需要更改的只有jdbc.properties和pom.xml依赖关系,以获得正确的.jar文件。就这么简单。
我知道我的连接参数对于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。
任何正确方向的帮助或指示都将不胜感激。
发布于 2011-02-11 15:10:44
好的,下面是如何做到这一点:
在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我还不知道怎么让AutoCommit下车。抱歉,我想弄清楚。
为什么Firebird不让它像其他数据库一样成为标准呢?可能会有更多的人使用这个巨大的数据库。
发布于 2011-02-18 17:47:22
--如果有人感兴趣,下面是一个跟踪:
我最终放弃了上面的设置,你只能如此努力地战斗这么长时间.
问题是org.firebirdsql.pool.FBWrappingDataSource。
最后,我让Proxool连接池工作并使用了它。
<bean id="dataSource"
class="org.logicalcobwebs.proxool.ProxoolDataSource"
p:alias="${jdbc.alias}"
p:driver="${jdbc.driverClassName}"
p:driverUrl="${jdbc.databaseurl}"
p:user="${jdbc.username}"
p:password="${jdbc.password}" />你还得做这样的事情:
<dependency>
<groupId>proxool</groupId>
<artifactId>proxool</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>proxool</groupId>
<artifactId>cglib</artifactId>
<version>1.0.0</version>
</dependency>如果你想在Spring中使用Firebird 2有什么帮助,请问.
发布于 2011-02-10 16:11:19
Stacktrace看起来像是错过了javax.resource.ResourceException类。也许该驱动程序需要类J2EE连接器体系结构在类路径中。
https://stackoverflow.com/questions/4959433
复制相似问题