Apache Commons DbUtils的替代轻量级JDBC帮助库
我刚刚开发了自己的小型JDBC帮助程序库,我已经意识到它将成为一个维护噩梦。
我不是在寻找一个完整的ORM,比如Hibernate,只是一些轻松而有用的东西可以快速地使JDBC调用传递SQL语句而不会弄乱已检查的exception,手动关闭资源等等……
从您的经验中,您能推荐一个不错的JDBC帮助程序库吗?
到目前为止,我已经看过Apache Commons DbUtils了 ,看起来还不错。 还有其他想法吗?
以下是与简单JDBC交互时“缓解痛苦”的工具列表:
- Spring的JdbcTemplate
- jOOQ (也可以与SQL字符串一起使用 – 免责声明:我为供应商工作)
- Apache DbUtils (你自己提到过)
- JDBI
- sql2o
- persism
还有ORMLite和MyBatis ,它们也非常轻巧。 使用spring和它的rowmappers非常简单,但是需要你直接处理JDBC。 像上述任何一个东西都会隐藏很多远离你的东西,而不像hibernate那样过于复杂。
https://code.google.com/p/jdbc-helper/
以下是我从其项目页面复制的描述: 受Spring Jdbctemplate和Commons Dbutils项目的启发,JdbcHelper是一个非常小的库,用于帮助开发人员编写常见的jdbc操作代码。 JdbcHelper非常轻量级。 它只有~70K,并且没有外部依赖性。
有Yank ,它是一个包装DBUtils的超轻JDBC持久层。 要使用它,您需要为每个表创建一个POJO和一个DAO类。 您编写自己的SQL语句并通过DBProxy类执行查询。 您不必处理Connections,ResultSet和/或其他低级JDBC代码。 从版本2.0.0开始,Yank jar只有13 KB,它只依赖于SLF4J,DBUtils和第三方数据库jar,无论您使用哪种数据库技术。
Spring Framework (spring-dao)是你的朋友。 如果您正确编程接口,稍后(如果有必要)您可以轻松切换到更强大的function,如Hibernate。 另外不要低估Hibernate: Native SQL为您提供了完整SQL的强大function,您仍然可以从对象映射中受益 – 无论如何您都必须编程,除非您只需要执行简单的select count(*) from ...
来执行查询select count(*) from ...
如果ORM不是必需的,我使用spring JdbcTemplate 。
例子
- Spring Framework是否支持多部分请求中的流模式
- 将POJO内容从一个bean复制到另一个bean
- FTPClient.listFiles无法正常工作
- FTPSClient返回MalformedServerReplyException:无法解析响应代码
- Apache commons fileupload“Streaming API”
- org.apache.commons.net.ftp.FTPClient listFiles()的问题
- 在Java中通过FTP创建文件夹层次结构
- 使用Commons或Guava将文本文件导入Java List
- 反序列化会话数据时出现InvalidClassException错误