锁定老帖子 主题:我实现的一个dao助手类
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-07
这个类蛮实用的,我在几个项目中都使用。接口如下: public interface DaoHelper { boolean add(String sql, Object... args); boolean add(String sql, Connection conn, Object... args); int update(String sql, Object... args); int update(String sql, Connection conn, Object... args); boolean delete(String sql, Object... args); boolean delete(String sql, Connection conn, Object... args); Object getObject(String sql, Class obj, Object... args); Object getObject(String sql, Connection conn, Class obj, Object... args); List<Object> getList(String sql, Class obj, Object... args); String queryForString(String sql, Object... args); Long queryForLong(String sql, Object... args); Boolean queryForBoolean(String sql, Object... args); Connection getConn (); void returnConnection(Connection conn); void rollBack(Connection conn); } <!---->(1) <!---->第一个 add 方法用来执行 insert 语句,并且提交事务; sql 为数据库语句, args 为数据库参数,要和数据库语句里的“?”对应。 <!---->(2) <!---->第二个 add 方法多了一个 Connetion 参数,该方法将使用这个 Conn 来创建 PreparedStatement ,但是执行结束后不提交,需要手动提交。 <!---->(3) <!---->其他 update 、 delete 同上 <!---->(4) <!----> getObject 方法返回一个 bean ,把 ResultSet 转化为 Bean , bean 的属性必须和数据库列名称相同。 <!---->(5) <!----> getList 方法返回一个 List ,将 ResultSet 处理为一个 List 返回 <!---->(6) <!----> queryForString , queryForLong , queryForBoolean 将分别返回 String 、 Long 、 Boolean 结果。 实现我使用了 apache common 里的 dbutils 包,另外由 DataSource 提供数据库 Connection ,我使用的是 c3p0 的实现,用 spring bean set 注入的。代码参考附件。
PS: 抛砖引玉,大家要是有更好的方法的话,可以拿出来共享一下,提高代码质量、加快开发速度。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-07
这个不是和iBATIS很像?SQL Map
|
|
返回顶楼 | |
发表时间:2008-09-07
下载来看看,支持交流~!
|
|
返回顶楼 | |
发表时间:2008-09-07
你不设skip和max..
数据量稍微上去点你就得破产了。。 |
|
返回顶楼 | |
发表时间:2008-09-08
没有IBATIS那么复杂的,
max什么的没有考虑到。 |
|
返回顶楼 | |
发表时间:2008-09-08
异常都给你拦截了,只是简单的printStackTrace,对调用者不负责任。
|
|
返回顶楼 | |
发表时间:2008-09-08
org.apache.commons.dbutils.BeanProcessor,真是好东西。我还一直用beanutil
|
|
返回顶楼 | |
发表时间:2008-09-12
自己也实现了个类似的东东
|
|
返回顶楼 | |
发表时间:2008-09-14
个人认为写这样的Util类,意义不大。很显然然你只是能够运行,却没有对资源的管理,资源管理居然和操作行为耦合在一起了!建议还是先把Java EE的层次结构弄清楚,这样设计出来的东西不会出现这么低级的失误!
|
|
返回顶楼 | |
发表时间:2008-09-28
Ethan 写道 个人认为写这样的Util类,意义不大。很显然然你只是能够运行,却没有对资源的管理,资源管理居然和操作行为耦合在一起了!建议还是先把Java EE的层次结构弄清楚,这样设计出来的东西不会出现这么低级的失误! 竟然没有看懂,管理什么资源啊,缓存查询结果吗?这些没有 |
|
返回顶楼 | |