DBASS
是一个使用泛型技术的一系列
JDBC
工具类库。它参考了
Commons DBUtils
的实现。加入了一个通用的
DAO
,提供了不错的
JDBC
操作
API
(类似于
Spring
的
JDBCTemplate
),包括通用的多数据库支持的分页查询方案等等。也提供了一个非常简单易用的基于注解的事务管理方案。至于为什么要重新发明这个轮子。这是因为
Commons DBUtils
过于简单,
Spring
的
JDBCTemplate需要
依赖于庞大的
Spring
。由于
Cwin
需要以插件形式运行使得它并不适合要求。现在的
DBASS
版本体形控制得不错,只有
20
多
Kb
。此版本支持mssql,mysql,oracle,postgresql。
现在刚刚发布1.0版,请各位大大给些评论,提些建议。多谢了。
集成
DBASS
DBASS
的集成很简单,只需要提供一个数据库类型和一个数据源。
您可以提供一个名叫
dbass.properties
的配置文件(这个文件可以在下载的包中找到)来提供数据源。如果你感觉:啊?又多一个配置文件!我们系统已经在其它地方配置过数据源了!那么,您可以使用一行代码来完成初始化。选择全在您的手上。
通过调用
cn.antia.db.DbUtils
的静态方法
. public static void init(String dbType,DataSource dataSource)
可以完成初始化。dbType可以为相个可选值中的一个:mssql,mysql,oracle,postgre。
在完成初始化以后,就可以在应用程序中调用下面介绍的
API
了。
依赖组件:
如果您需要使用基于注解的事务支持,将依赖于
AspectJ1.5+
。当然我们建议您使用基于注解的事务。因为它使用起来的确很方便。
否则,
DBASS
不依赖于任何第三方组件。
CommonDAO
的介绍
cn.antia.db. CommonDAO
类提供了较为全面的数据库操作方法。提供了一个数据库透明的分页查询解决方案。以下是
CommonDAO
的常用方法列表:
int gtRecordCount(SqlParams sqlParams)
int getRecordCount(String sql)
<T> List<T> queryFirstField(SqlParams sqlParams)
<T> List<T> queryFirstField(String sql)
Map<String,Object> queryFirstMap(SqlParams sqlParams)
Map<String,Object> queryFirstMap(String sql)
<T> T queryFirstObject(SqlParams sqlParams)
<T> T queryFirstObject(String sql)
<T> List<T> queryList(SqlParams sqlParams, Class<T> clazz)
<T> List<T> queryList(SqlParams sqlParams, int page, int pageSize, String orderField, boolean isAsc, Class<T> clazz)
<T> List<T> queryList(String sql, Class<T> clazz)
<T> List<T> queryList(String sql, int page, int pageSize, String orderField, boolean isAsc, Class<T> clazz)
List<Map<String,Object>> queryListMap(SqlParams sqlParams)
List<Map<String,Object>> queryListMap(SqlParams sqlParams, int page, int pageSize, String orderField, boolean isAsc)
List<Map<String,Object>> queryListMap(String sql)
List<Map<String,Object>> queryListMap(String sql, int page, int pageSize, String orderField, boolean isAsc)
<K,T> Map<K,T> queryMap(SqlParams sqlParams) //MAP:以第一列为KEY,第二列为VALUE
<K,T> Map<K,T> queryMap(String sql)
<T> T queryObject(SqlParams sqlParams, Class<T> clazz)
<T> T queryObject(String sql, Class<T> clazz)
int update(SqlParams sqlParams)
int update(String sql)
boolean runSql(String sql)
其中
SqlParams
对象封装了带问号(占位符)的
SQL
语句与参数数组。
DbUtils
的使用
DBASS
提供的
DbUtils
最开始的版本是与
Apache Commons DbUtil
的
DbUtils
类是一致的。提供了一些打开与关闭连接之类的方法。另外增加了一些方法,不过这些方法对于用户来说是无关紧要的。
事务的使用与
TransactionUtils
DBASS
提供了基于注释的事务支持。支持事务嵌套。
事务的配置很简单:如果您的某个方法需要事务支持。只需在方法前面加入一个注释即可。
事务注释:
cn.antia.dn. AssTranscation
例如:
@AssTranscation
public int deleteUser(…){…}
是不是很简单呢。
如果您想手动控制事务的话。
TransactionUtils
为事务的支持提供了一组静态方法。一般使用事务只需关注三个方法即可:
begin ();
开始一个事务。如果在调用此方法之前当前线程正在事务当中,那么将不再打开新的事务。而只是将后面的操作加入到已经存在的事务中。
commit();
提交事务。
rollback();
回滚事务。
rollback(Throwable e);
回滚事务,参数为引发回滚的异常
TransactionUtils
的其它方法包括:
isInTransaction():
当前线程是否在事务中
isConnInTransaction():
此数据库连接是否在事务中
currentConnection():
取得当前线程的数据库连接
TransactionUtils
使用示例:
void test(){
TransactionUtils.begin();
try{
String sql = "update address set borough = '000000000' where id = 2";
CommonDAO.update(sql);
sql = "update address set borough = '000000000' where id = 3";
CommonDAO.update(sql);
}catch(Exception e){
TransactionUtils.rollback(e);
return;
}
TransactionUtils.commit();
}
注意:
TransactionUtils
的事务支持需要与
CommonDAO
或者
DbUtils
配合使用。这里的
CommonDAO
或者
DbUtils
中
“
或者
”
的意思是指:要么您使用
CommonDAO
来完成操作。要么您使用
DbUtils
来获取与关闭
DB Connection
。因为
TransactionUtils
无法管理从其它地方取到的
DB Connection
。
注意:如果事务回滚,
TransactionUtils
将会在事务回滚之后抛出一个运行时异常。以告知业务方法的调用者。
在此下载DBASS1.0
分享到:
相关推荐
chapter1:第1章的源程序可使用Jdk1.3以上的任何版本编译和运行,命令运行商品库存管理系统 的命令格式为:java chapter1. MainFrame。 <br> chapter2:第2章的主类是Simulator,运行环境同第1章,也可以在...
现在,ManagedBass是按每个AddOn拆分的一组软件包提供的。 入门 安装NuGet软件包 Install-Package ManagedBass 从下载BASS库,并将它们放在Build Output Directory中。 有关更多信息,请参见 。 变更日志 v3.0 ...
三层架构是一种常见的软件设计模式,它将应用程序分为三个主要的层次:表示层(UI层)、业务逻辑层(BLL层)和数据访问层(DAL层)。这种分层设计有助于提高系统的可维护性和扩展性。 1. **表示层(UI层)**: - ...
2025最新电工技师考试题及答案.docx
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
骨科康复医疗领域知识图谱建立及其分析.pdf
基于交易能量框架的多微电网最优能源管理:配网协同优化以降低运营成本, 关键词:Transactive energy,微电网 配网 参考文档:《Optimal Energy Management for Multi-Microgrid Under a Transactive Energy Framework With Distributionally Robust Optimization》2021一区半完美复现 仿真平台:MATLAB YALMIP GUROBI 主要内容:我们制定了一个基于交易能量(TE)框架的上游网络和网络中电网的能源调度的优化问题,以最小化运营成本。 市电网与上游网络之间的能源管理由配电系统运营商(DSO)操作,这不同于传统电力系统中的直接控制信号和固定定价机制。 ,Transactive energy; 微电网; 配网; 能源调度; 运营成本; 配电系统运营商(DSO); 交易能量框架; 优化问题; MATLAB YALMIP GUROBI。,Transactive Energy驱动的微电网配网能源调度优化策略研究
西门子1200 PLC与欧姆龙E5cc温控器双重控制通讯程序:远程触摸屏与本地温控器485通讯实现轮询式控制及温度监测,西门子1200与欧姆龙E5cc温控器 远程+本地双重控制通讯程序 功能:实现西门子1200 PLC对欧姆龙E5cc温控器进行485通讯控制,在触摸屏上设定温度,读取温度 ,也可以在温控器本体设定温度。 达到双重控制 程序采用轮询方式,有通讯故障后再恢复功能,也可以后续根据需要在此基础上扩充台数 器件:西门子1200 1214DC DC DC.昆仑通态TPC7062Ti ,西门子KTP700 Basic PN,欧姆龙E5cc温控器。 说明:是程序,带详细注释程序,触摸屏程序,PLC设置和温控器设置,接线说明书。 ,关键词:西门子1200;欧姆龙E5cc温控器;485通讯控制;远程+本地双重控制;轮询方式;通讯故障恢复;昆仑通态TPC7062Ti;西门子KTP700 Basic PN;详细注释程序;触摸屏程序;PLC设置;温控器设置;接线说明书。,西门子1200与欧姆龙E5cc温控器通讯控制程序:远程本地双重控制及详解
2025专业技术人员继续教育公需课题库(附含答案).pptx
2025医院手术室应急预案考核试题及答案.docx
2025数字化技术基础试题(含答案).docx
2025最新电信5G协优资格认证考试题库附含答案.docx
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
COMSOL裂隙动水注浆扩散模拟:研究水泥-水玻璃与高聚物改性水泥浆液扩散规律及黏度时变特性影响分析,COMSOL裂隙动水注浆扩散数值模拟 针对动水注浆中常用的2种速凝浆液,水泥–水玻璃浆液与高聚物改性水泥浆液,考虑浆液黏度时变特性,应用有限元计算软件COMSOL Multiphysics建立动水条件下裂隙注浆扩散的数值模型,研究动水条件下裂隙注浆扩散规律并分析不同黏度时变特性、初始动水流速与注浆速率对注浆扩散过程的影响。 ,关键词:COMSOL Multiphysics;裂隙动水注浆;扩散数值模拟;速凝浆液;水泥-水玻璃浆液;高聚物改性水泥浆液;浆液黏度时变特性;有限元计算;注浆扩散规律;动水流速;注浆速率。,COMSOL模拟动水注浆扩散规律及影响因素研究
Simulink模型下的纯电动汽车、混合动力汽车及染料电池电动汽车的制动优先与能量管理功能解析,纯电动汽车Simulink模型;混合动力汽车Simulink模型;染料电池电动汽车Simulink模型。 纯电动汽车模型: 制动优先;充电禁止车辆驱动;驱动控制;再生能量回收;紧急停机功能; ,纯电动汽车模型:制动优先;充电禁止驱动;驱动控制;再生能量回收;紧急制动系统; 混合动力汽车模型:燃料类型切换;动力输出控制;能量回收策略;模式切换;效率优化; 染料电池电动汽车模型:染料电池性能;能量转换效率;充电过程模拟;电池管理系统;安全保护措施。,Simulink模型研究:多种能源驱动车辆动力系统控制优化
2025最新初级保育员理论知识考试题库及答案.doc
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
2025最新计算机网络技术考试题及答案.docx