java – 简单的jdbc包装

为了在我们的应用程序中实现数据访问代码,我们需要一些框架来包装jdbc(ORM不是我们的选择,因为可扩展性).

我以前使用的最酷的框架是Spring-Jdbc.但是,我公司的策略是避免外部依赖,特别是Spring,J2EE等.
所以我们正在考虑编写自己手工制作的jdbc框架,其功能类似于Spring-jdbc:行映射,错误处理,支持java5的功能,但没有事务支持.

有没有人有写这样的jdbc包装框架的经验?
如果任何人有使用其他jdbc包装框架的经验,请分享您的经验.

提前致谢.

我们写了我们自己的包装.这个话题值得一试,但我怀疑我会有时间写,所以这里有一些要点:

>我们接受了sql,并没有试图隐藏它.唯一的调整是添加对命名参数的支持.参数很重要,因为我们不鼓励使用即时sql(出于安全考虑),我们总是使用PreparedStatements.
>对于连接管理,我们使用Apache DBCP.这在当时很方便,但目前尚不清楚现代JDBC实现需要多少(这个文件的文档缺乏). DBCP还会池PreparedStatements.
>我们没有打扰行映射.相反(对于查询),我们使用了与Apache dbutil的ResultSetHandler类似的东西,它允许您将结果集“feed”为一种方法,然后可以将信息转储到任何地方.这是更灵活的,实际上并不难实现一个ResultSetHandler的行映射.对于插入/更新,我们创建了一个通用记录类(基本上是一个hashmap,有一些额外的响声和口哨).行映射(对我们来说)的最大问题是,一旦你做了一个“有趣”的查询,你就会被卡住,因为你可能会有一些映射到不同类的字段;因为你可能有一个层次结构,而是一个平面的结果集;或者因为映射是复杂的和数据依赖的.
我们内置错误日志记录.对于异常处理:在查询我们陷阱和记录,但对于更新我们陷阱,记录和重新抛出一个未经检查的异常.
>我们使用包装方法提供了事务支持.调用者提供执行事务的代码,我们确保事务被正确管理,没有机会忘记完成事务以及内置的回滚和错误处理.
>稍后,我们添加了一个非常简单的关系方案,允许单个更新/插入应用于记录及其所有依赖关系.为了保持简单,我们没有使用这个查询,我们特别决定不支持删除,因为使用级联删除更可靠.

迄今为止,这个包装已成功用于两个项目.这当然是轻量级的,但是现在大家都说他们的代码很轻巧.更重要的是,它增加了程序员的生产力,减少了错误的数量(并使问题更容易跟踪),而且如果需要的话,相对来说很容易进行追踪,因为我们不相信为了提供美观的架构而添加了很多层.

翻译自:https://stackoverflow.com/questions/299597/simple-jdbc-wrapper

转载注明原文:java – 简单的jdbc包装