论坛首页 Java企业应用论坛

我实现的一个dao助手类

浏览 6740 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-07  
DAO

 

这个类蛮实用的,我在几个项目中都使用。接口如下:

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: 抛砖引玉,大家要是有更好的方法的话,可以拿出来共享一下,提高代码质量、加快开发速度。

 

  • daohelper.rar (1.8 KB)
  • 描述: DaoHelper.java,DaoHelperImpl.java
  • 下载次数: 405
   发表时间:2008-09-07  
这个不是和iBATIS很像?SQL Map
0 请登录后投票
   发表时间:2008-09-07  
下载来看看,支持交流~!
0 请登录后投票
   发表时间:2008-09-07  
你不设skip和max..
数据量稍微上去点你就得破产了。。
0 请登录后投票
   发表时间:2008-09-08  
没有IBATIS那么复杂的,
max什么的没有考虑到。
0 请登录后投票
   发表时间:2008-09-08  
异常都给你拦截了,只是简单的printStackTrace,对调用者不负责任。
1 请登录后投票
   发表时间:2008-09-08  
org.apache.commons.dbutils.BeanProcessor,真是好东西。我还一直用beanutil
0 请登录后投票
   发表时间:2008-09-12  
自己也实现了个类似的东东
0 请登录后投票
   发表时间:2008-09-14  
个人认为写这样的Util类,意义不大。很显然然你只是能够运行,却没有对资源的管理,资源管理居然和操作行为耦合在一起了!建议还是先把Java EE的层次结构弄清楚,这样设计出来的东西不会出现这么低级的失误!
0 请登录后投票
   发表时间:2008-09-28  
Ethan 写道

个人认为写这样的Util类,意义不大。很显然然你只是能够运行,却没有对资源的管理,资源管理居然和操作行为耦合在一起了!建议还是先把Java EE的层次结构弄清楚,这样设计出来的东西不会出现这么低级的失误!

竟然没有看懂,管理什么资源啊,缓存查询结果吗?这些没有
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics