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

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

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

                    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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据结构和数据存储结构

    数据结构和数据存储结构Android中的屏幕适配的问题的引出?因为Android手机首先屏幕的大小不同(scale),其次就算屏幕的大小相同屏幕的像素密度也不同,因此导致的问题:举个例子你需要在手机屏幕上横向显示5个Button,每个Button各占1/5,那么怎么可以在不同宽度手机,以及不同像素密度手机上显示出同样的效果呢?(最简单的就是全部把Gravity设为1),但是我们今天要使用dp,px来完成这项

    2025年6月17日
    0
  • this指针用法

    this指针用法

    2021年8月6日
    43
  • mysql workbench怎么导入数据库sql文件_workbench怎么创建数据库

    mysql workbench怎么导入数据库sql文件_workbench怎么创建数据库把Excel表格通过MySqlWorkbench导入数据库表中的使用总结今天接到一个任务,把excel表中的数据导入到mysql数据库中,通过半个多小时的鼓捣,基本上摸清了里面的门道。首先,准备所要导入的ecxel文件,需要把excel另存为*.csv类型的文件,然后通过notepad转换编码格式为utf-8类型,注意要把表头删去,否则会出问题。其次,导入所转换的文件

    2022年9月21日
    1
  • VIM命令模式与输入模式切换

    VIM命令模式与输入模式切换

    2021年10月11日
    39
  • CentOS7安装MySQL(完整版)

    CentOS7安装MySQL(完整版)在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。1下载并安装MySQL官方的YumRepository[root@localhost~]#wget-i-chttp://dev.mysql.com/get/mysql57-community-release-…

    2022年4月28日
    28
  • 【Linux】rm 命令:删除文件/文件夹

    【Linux】rm 命令:删除文件/文件夹文章目录一、删除文件/文件夹:rm命令二、删除文件(即这个文件被删除)三、删除文件夹四、注意参考链接一、删除文件/文件夹:rm命令rm是强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用rm命令删除文件或目录时,系统不会产生任何提示信息。此命令的基本格式为:rm[选项]文件或目录选项:-f:强制删除(force),和-i选项相反,使用-f,系统将不再询问,而是直接删除目标文件或目录。-i:和-f正好相反,在删除文件或目录之前,系统会给出提示信

    2022年7月13日
    130

发表回复

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

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