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

 

你可能感兴趣的:(DAO,sql,bean,ibatis,项目管理)