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层)**: - ...
基于springboot教育资源共享平台源码数据库文档.zip
linux开发篇,配套视频:https://www.bilibili.com/list/474327672?sid=4493702&spm_id_from=333.999.0.0&desc=1
ReadEra 这个阅读应用能够打开下列任何格式的文档: EPUB, PDF, DOC, RTF, TXT, DJVU, FB2, MOBI, 和 CHM. 基本上来说,你可以用它阅读你的设备内存中的任何书籍或者文本文档。 这个应用与划分成章节的文档兼。,有一个书签功能,可以在你阅读的时候,自动保存你的进度。另外,它让你更改页面模式,从几种不同的主题中进行挑选(夜间,白天,棕黑色调,还有控制台)。
软件环境:KEIL4 硬件环境:STM32单片机+舵机 控制原理:通过控制输出信号的占空比调节舵机旋转的角度
基于springboot仓库管理系统源码数据库文档.zip
酒店管理系统源码C++实现的毕业设计项目源码.zip,个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分98.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 酒店管理系统源码C++实现的毕业设计项目源码.zip,酒店管理系统源码C++实现的毕业设计项目源码.zip个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分98.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。酒店管理系统源码C++实现的毕业设计项目源码.zip酒店管理系统源码C++实现的毕业设计项目源码.zip酒店管理系统源码C++实现的毕业设计项目源码.zip,个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分98.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。酒店管理系统源码C++实现的毕业设计项目源码.zip,个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分98.5分。主要针对计算机相关专业的正在做毕
58商铺全新UI试客试用平台网站源码
springboot vue3前后端分离 基于SpringBoot+Vue的轻量级定时任务管理系统.zip
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
4D毫米波雷达点云数据处理方法研究.caj
S M 2 2 5 8 X T 量产工具供大家下载使用
基于springboot的文物管理系统源码数据库文档.zip
基于springboot的电影院售票管理系统源码数据库文档.zip
基于Java web 实现的仓库管理系统源码,适用于初学者了解Java web的开发过程以及仓库管理系统的实现。
美容美发项目,使用django框架,前后端一体化项目
在线票务:2023年中国在线票务行业市场规模约为24.99亿元,挖掘市场蓝海新机遇 在数字浪潮的席卷下,传统的票务销售模式正经历着前所未有的变革。纸质门票逐渐淡出人们的视野,取而代之的是便捷、高效的数字和移动票务。这一转变不仅为消费者带来了前所未有的购票体验,更为在线票务平台开辟了广阔的发展空间和市场机遇。随着国民经济的持续增长和文体娱乐行业的蓬勃发展,中国在线票务行业正站在时代的风口浪尖,等待着每一位有志之士的加入。那么,这片蓝海市场究竟蕴藏着怎样的潜力?又该如何把握机遇,实现突破?让我们一同探索。 市场概况: 近年来,中国在线票务行业市场规模持续扩大,展现出强劲的增长势头。据QYResearch数据显示,2023年中国在线票务行业市场规模约为24.99亿元,尽管受到宏观经济的影响,市场规模增速放缓,但整体趋势依然向好。这一增长主要得益于国民人均收入的不断提高、电影及演出行业的快速发展以及政府政策的支持。例如,2023年财政部、国家电影局发布的《关于阶段性免征国家电影事业发展专项资金政策的公告》,为电影行业注入了强劲动力,进而推动了在线票务市场规模的扩大。 技术创新与趋势: 技术进步
基于SpringBoot的养老院管理系统源码数据库文档.zip