通过JDBC使用不同数据库方言的模式

时间:2010-09-15 06:58:55

标签: java database spring orm jdbc

我正在创建一个必须通过JDBC处理不同数据库(Oracle,MSSQL,MySQL ......)的应用程序。我必须通过JDBC工作,因为我的应用程序调用这些数据库中的存储过程。

构建此类应用程序的最佳方法是什么?这有什么框架吗?

重要:解决方案必须很好地处理Spring Framework。


我正在考虑Hibernate,因为它是强大的ORM解决方案,它具有对存储过程的构建支持:http://docs.jboss.org/hibernate/stable/core/reference/en/html_single/#sp_query

请向我提供有关我目前选择的指示。


祝你好运, 最大

2 个答案:

答案 0 :(得分:3)

我会好好看看myBatis。它处理与JDBC和事务相关的所有痛苦,并将结果集映射到Java对象或哈希。

通过将它们与Java代码分离并在XML配置文件中进行配置,它还可以很好地处理SQL和存储过程。这在实践中工作得更好,因为将查询从XML复制到交互式SQL浏览器更容易,反之亦然。

要连接到多个数据集,您需要为每个数据源创建一个SqlSessionFactory。

答案 1 :(得分:1)

Hibernate通常是标准选项(也是我选择的选项)。我更喜欢使用JPA而不是Hibernate,但如果您需要存储过程,那么这不是一个选项。但关于iBatis的评论:

虽然我自己没有iBatis的经验,但似乎iBatis的Spring支持并不差:

Spring Reference,第13.6章:iBATIS SQL Maps

  

春天的iBATIS支持   框架非常类似于JDBC   支持,因为它支持相同   模板样式编程,以及   使用JDBC和其他ORM技术,   iBATIS支持适用于Spring   异常层次结构,让你享受   Spring的IoC功能。

     

可以处理交易管理   通过Spring的标准设施。   没有特殊的交易策略   对于iBATIS来说是必要的,因为没有   特殊交易资源   涉及除JDBC连接之外的其他内容。   因此,Spring的标准JDBC   DataSourceTransactionManager或   JtaTransactionManager非常棒   足够的。