我正在创建一个必须通过JDBC处理不同数据库(Oracle,MSSQL,MySQL ......)的应用程序。我必须通过JDBC工作,因为我的应用程序调用这些数据库中的存储过程。
构建此类应用程序的最佳方法是什么?这有什么框架吗?
我正在考虑Hibernate,因为它是强大的ORM解决方案,它具有对存储过程的构建支持:http://docs.jboss.org/hibernate/stable/core/reference/en/html_single/#sp_query
请向我提供有关我目前选择的指示。
祝你好运, 最大
答案 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非常棒 足够的。