带有 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,它们提供了您可以自己实现的扩展点(通过EmbeddedDatabaseConfigurer
或DataSourceFactory
)。我还建议浏览他们的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
Hibernate 数据库方言配置;no dialect mapping for jdbc type:-9;生僻字
Springboot 与 Sybase 服务器 - 无法加载驱动程序类:com.sybase.jdbc4.jdbc.SybDriver
Jpa Join 查询与来自两个表的数据,org.hibernate.MappingException:没有 JDBC 类型的方言映射:2002