这个类蛮实用的,我在几个项目中都使用。接口如下:
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
分享到:
相关推荐
我想此刻你大概也能猜到了,这是一个软件工程专业本科狗的毕设项目。因此从某种意义上来说这个项目没有任何价值和意义,至少对大部分人来说是这样的。但是作为一个历经学校繁琐复杂毕设过程的本科狗来说,我清楚的...
大型项目的另一个优点是,您无需为每个不同的相关表创建单独的POJO,即:UserWithPet,UserWithDetails,UserWithHouse,UserWithHouseWithDoors等。相反,在User表中包括所有必需的相关实体,每个实体都带有@...
电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大...
电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大...
电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大...
电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大...
电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大...
电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大...
class with string manipulation members 一个串处理的类--CBstr(7KB)<END><br>19,19.zip Displaying System Interfaces in ClassView 在ClassView中显示系统界面(4KB)<END><br>20,20.zip Dialog frame ...
一个现代化的图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。面对图书馆数以万几计的图书,纷繁复杂的读者信息,频繁更替的借还书信息,传统的直接方法不但管理...
10.2.3 使用联合查询以显示一个或所有记录 263 10.2.4 在子窗体中使用SQL的UNION语句查询所有记录 266 10.2.5 在组合框控件外显示组合框的列 268 10.2.6 根据用户的输入添加新的组合框选项 271 10.3 使用本...
10.2.3 使用联合查询以显示一个或所有记录 263 10.2.4 在子窗体中使用SQL的UNION语句查询所有记录 266 10.2.5 在组合框控件外显示组合框的列 268 10.2.6 根据用户的输入添加新的组合框选项 271 10.3 使用本机的...
814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中...
23610.8.3 基于表中被选定的记录进行计算 23810.9 设计参数查询 24010.9.1 向月销售量查询添加一个参数 24010.9.2 指定参数的数据类型 24110.10 创建交叉表查询 24210.10.1 使用向导生成一个季度产品销售交叉表查询 ...
23610.8.3 基于表中被选定的记录进行计算 23810.9 设计参数查询 24010.9.1 向月销售量查询添加一个参数 24010.9.2 指定参数的数据类型 24110.10 创建交叉表查询 24210.10.1 使用向导生成一个季度产品销售交叉表查询 ...
814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中...
23610.8.3 基于表中被选定的记录进行计算 23810.9 设计参数查询 24010.9.1 向月销售量查询添加一个参数 24010.9.2 指定参数的数据类型 24110.10 创建交叉表查询 24210.10.1 使用向导生成一个季度产品销售交叉表查询 ...
814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中...
814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中...
23610.8.3 基于表中被选定的记录进行计算 23810.9 设计参数查询 24010.9.1 向月销售量查询添加一个参数 24010.9.2 指定参数的数据类型 24110.10 创建交叉表查询 24210.10.1 使用向导生成一个季度产品销售交叉表查询 ...