首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring和Firebird数据库

Spring和Firebird数据库
EN

Stack Overflow用户
提问于 2011-02-10 15:58:16
回答 4查看 5.5K关注 0票数 2

在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。

任何正确方向的帮助或指示都将不胜感激。

EN

回答 4

Stack Overflow用户

发布于 2011-02-11 15:10:44

好的,下面是如何做到这一点:

在pom.xml中添加以下内容(两者都需要):

代码语言:javascript
复制
    <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文件中的数据源设置为:

代码语言:javascript
复制
<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文件:

代码语言:javascript
复制
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不让它像其他数据库一样成为标准呢?可能会有更多的人使用这个巨大的数据库。

票数 4
EN

Stack Overflow用户

发布于 2011-02-18 17:47:22

--如果有人感兴趣,下面是一个跟踪:

我最终放弃了上面的设置,你只能如此努力地战斗这么长时间.

问题是org.firebirdsql.pool.FBWrappingDataSource。

最后,我让Proxool连接池工作并使用了它。

代码语言:javascript
复制
<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}" />

你还得做这样的事情:

代码语言:javascript
复制
    <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有什么帮助,请问.

票数 1
EN

Stack Overflow用户

发布于 2011-02-10 16:11:19

Stacktrace看起来像是错过了javax.resource.ResourceException类。也许该驱动程序需要类J2EE连接器体系结构在类路径中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4959433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档