带有 Sybase 方言的 JDBC 嵌入式数据库

Posted

技术标签:

【中文标题】带有 Sybase 方言的 JDBC 嵌入式数据库【英文标题】:JDBC Embedded-Database with Sybase dialect 【发布时间】:2012-02-17 14:29:53 【问题描述】:

如何设置 JDBC 嵌入式数据库以使用 Sybase 方言?

这是我所拥有的:

<jdbc:embedded-database id="dataSource">
   <jdbc:script location="classpath:myscript.sql"/>
</jdbc:embedded-database>

【问题讨论】:

方言是来自 Hibernate/JPA 世界的东西,它与嵌入数据库有什么关系?你想做什么? 使用嵌入式数据库在使用 Spring、Hibernate 和 Sybase DB 的项目中使用测试 DAO 代码。 【参考方案1】:

开箱即用,Spring 支持 H2、Derby 和 HSQL 嵌入式数据库。如果你想使用不同的,你要么必须找到已经为你正在寻找的那个创建支持的人,否则你必须自己构建它。

如果您查看13.8.4 of the Spring documentation,它们提供了您可以自己实现的扩展点(通过EmbeddedDatabaseConfigurerDataSourceFactory)。我还建议浏览他们的Jira page,看看是否有人正在努力实现对您所追求的嵌入式数据库的支持。

【讨论】:

【参考方案2】:

再一次,方言与 Hibernate 相关。它被定义为LocalSessionFactoryBean的一个属性:

<bean id="exampleSessionFactory" 
   class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    <property name="hibernateProperties">
       <props>
         <prop key="hibernate.dialect">org.hibernate.dialect.SybaseDialect</prop>
         ...

但是 Sybase 方言并不意味着它所针对的数据库是 Sybase。您可以随意尝试将 Sybase 方言与 Spring @nicholas.hauschild 提到的三个捆绑的嵌入式数据库一起使用,但它很可能会失败。

【讨论】:

好的,对。然而,问题是帖子中的配置失败,因为嵌入式数据库没有使用 Sybase 方言来运行设置脚本。 你说的不使用是什么意思? 表示嵌入式数据库不接受 Sybase 方言 sql。所以我不得不将脚本翻译成非特定于 sybase 的语法。

以上是关于带有 Sybase 方言的 JDBC 嵌入式数据库的主要内容,如果未能解决你的问题,请参考以下文章

DSX PySpark 使用自定义 JDBC 方言将数据写入 dashDB

SQOOP 1 未能加载 Sybase 驱动程序 - 无法加载 db 驱动程序类:com.sybase.jdbc3.jdbc.SybDriver

注册永久 JDBC 方言 sparkR

Hibernate 数据库方言配置;no dialect mapping for jdbc type:-9;生僻字

Springboot 与 Sybase 服务器 - 无法加载驱动程序类:com.sybase.jdbc4.jdbc.SybDriver

Jpa Join 查询与来自两个表的数据,org.hibernate.MappingException:没有 JDBC 类型的方言映射:2002