Java数据库操作框架

8
在我的工作场所,我们使用DAO模式来处理各种数据库操作。它将繁琐的语句隐藏在程序员背后。程序员需要编写SQL查询和逻辑来处理输出数据。BaseDao处理所有类型的操作并以所需格式返回输出。
我发现这个类不是完美的。我添加了控制连接数和处理连接问题(如慢速连接,无连接,连接尝试次数等)的代码。
但是,我需要添加更多的代码来支持JDBC的高级功能,比如提供/访问二进制数据,处理存储过程返回的结果集等。
是否有任何Java框架或一组类可以涵盖许多数据库操作?
请给出建议。

我脑海中还有一个框架是JOOQ。但不幸的是,它不能像我在问题中提到的那样处理SPs输出。 - Amit Kumar Gupta
你认为 jOOQ 对存储过程的处理还缺少什么吗?需要支持从存储过程返回的结果集吗?或者总体上还有什么遗漏的地方吗? - Lukas Eder
@Lukas,如果在存储过程中打开了多个光标... - Amit Kumar Gupta
我明白了。目前还不支持,但在jOOQ路线图上有计划 https://sourceforge.net/apps/trac/jooq/ticket/166。你是否找到了与这些存储过程交互的另一种方法,例如使用JPA/Hibernate? - Lukas Eder
4个回答

5

虽然我发现了许多库,比如jooq、spring DAO(由 @qwerty 建议),但我认为转向 hibernet 将是一个更好的选择。 - Amit Kumar Gupta
1
你知道JPA/Hibernate提供访问存储过程返回结果集的示例吗?从用户角度来看,这容易实现吗? - Lukas Eder

3
你可以尝试使用Spring DAO,它有一个很好的模板模式来处理结果集。

1

或者你可以再往后退一步,远离JDBC,使用Hibernate。


我不熟悉Hibernet。我能在独立的Java应用程序中使用它吗? - Amit Kumar Gupta
是的。它可以在Web应用程序或控制台/桌面应用程序中完美运行。 - Olaf

0

Spring Data JPA比其他人提出的建议还要更抽象化。有了它和Hibernate,除非需要执行复杂操作,否则您甚至不需要编写查询。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接