一个可以兼容各种数据库事务的使用范例

一个可以兼容各种数据库事务的使用范例

传入实体执行(可添加 修改 删除)事务。

                    IDbHelper dbHelper = new OracleHelper(ConfigHelper.GetConfigString("BusinessDbConnection"));
                    bool result = true;
                    try
                    {
                         dbHelper.BeginTransaction();
              //主表
                         TE_AREAManager manager = new TE_AREAManager(dbHelper, userInfo);
                         TE_AREAEntity tE_AREAEntity = manager.GetObject(dbHelper.SqlSafe(eatxtAREA_ID));
                         manager.Delete(tE_AREAEntity);
             //子表
                         TE_AREA_SUBManager submanager = new TE_AREA_SUBManager(dbHelper, userInfo);
                         TE_AREA_SUBEntity tE_AREA_SUBEntity = submanager.GetObject(dbHelper.SqlSafe(eatxtAREA_ID));
                         submanager.Delete(tE_AREA_SUBEntity);
             //事务提交 
                         dbHelper.CommitTransaction();
                    }
                    catch(Exception ex)
                    {
             //事务回滚
                        dbHelper.RollbackTransaction();
                        result=false;
                    }

可以传入sql语句执行事务

IDbHelper dbHelper = new OracleHelper(ConfigHelper.GetConfigString("BusinessDbConnection"));
                    bool result = true;
                    try
                    {
                         dbHelper.BeginTransaction();
                         string   commandText = " DELETE FROM TE_AREA WHERE ID=" + dbHelper.SqlSafe(id);
                         dbHelper.ExecuteNonQuery(sqlString);

                         commandText = " DELETE FROM TE_AREA_SUB WHERE ID=" + dbHelper.SqlSafe(id);
                         dbHelper.ExecuteNonQuery(commandText);

                         dbHelper.CommitTransaction();
                    }
                    catch(Exception ex)
                    {
                        dbHelper.RollbackTransaction();
                        result=false;
                    }

 还可以同时传入实体,SQL语句

 IDbHelper dbHelper = new OracleHelper(ConfigHelper.GetConfigString("BusinessDbConnection"));
                    bool result = true;
                    try
                    {
                         dbHelper.BeginTransaction();
               //主表
                         TE_AREAManager manager = new TE_AREAManager(dbHelper, userInfo);
                         TE_AREAEntity tE_AREAEntity = manager.GetObject(dbHelper.SqlSafe(eatxtAREA_ID));
                         manager.Delete(tE_AREAEntity);
               //子表
                         TE_AREA_SUBManager submanager = new TE_AREA_SUBManager(dbHelper, userInfo);
                         TE_AREA_SUBEntity tE_AREA_SUBEntity = submanager.GetObject(dbHelper.SqlSafe(eatxtAREA_ID));
                         submanager.Delete(tE_AREA_SUBEntity);
               
               //执行SQL语句
               string commandText = " DELETE FROM JINTIANDA WHERE ID=" + dbHelper.SqlSafe(id);
               dbHelper.ExecuteNonQuery(commandText);

               //事务提交 
                         dbHelper.CommitTransaction();
                    }
                    catch(Exception ex)
                    {
              //事务回滚
                        dbHelper.RollbackTransaction();
                        result=false;
                    }

 
以上事务处理方法是基于吉日嘎拉通用权限管理组件底层的代码上实现的,dbHelper,兼容各种数据库事务处理,非常省心省事。

欢迎大家提供自己的使用经验,共同提高开发效率。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109843.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python如何安装sklearn库

    python如何安装sklearn库1.正常的安装思路是win+Rcmdpipinstall+所要装的库然后就会这样2.其实在我换了3.8版本之后在安装python库的时候,基本上pipinstall+库名80%是会成功的,对于这种失败的,我用了第二种方法进行安装。在官网https://www.lfd.uci.edu/~gohlke/pythonlibs/#找到库对应的文件进行下载下载好了之后可以在浏览器的“下载内容”找到我的建议是点“在文件夹中显示”然后在文件夹中选中复制切回c…

    2022年10月17日
    3
  • 解决win10下VM12虚拟机桥接模式不能上网的方法(亲测可行)[通俗易懂]

    解决win10下VM12虚拟机桥接模式不能上网的方法(亲测可行)[通俗易懂]解决win10下VM12虚拟机桥接模式不能上网的方法(亲测可行)本文的方法可解决如下两个问题:局域网中其他机器ping不通本机中的虚拟机本机中的虚拟机采用桥接模式不能上网,甚至主机也不能上网。注意:自己局域网的IP起始地址及路由器地址,可以通过登陆路由器查看,也可以在所有操作之前在CMD中通过命令ipconfig(windows)或ifconfig(linux)查看。一般路由器的地…

    2022年6月10日
    42
  • 日志分析_周记10篇

    日志分析_周记10篇日志信息每个用例都会生成一个对应的log日志,位置:<ProjectRootDir>/logs/TestCaseID.run.log.如果你想看到request和response、提取

    2022年7月29日
    9
  • Populating Next Right Pointers in Each Node II LeetCode[通俗易懂]

    Populating Next Right Pointers in Each Node II LeetCode

    2022年1月29日
    39
  • SSM整合——简单的小项目实战[通俗易懂]

    SSM整合——简单的小项目实战[通俗易懂]文章目录:1.SSM整合思路1.1两个容器的创建1.2SSM整合开发的步骤2.SSM整合开发2.1项目的大体结构2.2使用Navicat创建一个表(student2)2.3IDEA中使用maven创建一个web项目2.4在pom.xml文件中添加相关依赖2.5在web.xml文件中。声明容器对象2.6创建项目中特定的包(entity、dao、service、controller)2.7编写mybatis、spring、springmvc的…

    2022年5月27日
    39
  • SVM解释:五、SMO算法

    SVM解释:五、SMO算法SMO算法是JohnC.Platt在1998年提出的。论文的题目是”SequentialMinimalOptimization:AFastAlgorithmforTrainingSupportVectorMachines”。它很快便成为最快的二次规划优化算法,特别是在针对线性SVM和数据稀疏时性能更优。当然了,SMO优越性能的背后是其相当复杂的数学推导,所以,我也把这块最…

    2022年6月24日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号