zoukankan      html  css  js  c++  java
  • 自己动手写ORM框架(九):实现删除功能Remove方法

        前面简单的修改功能已经实现了,下面是实现删除功能,代码1-1如下:

    #region 删除实体对应数据库中的数据
    public int Remove<T>(T entity)
    {
        TableInfo tableInfo = DbEntityUtils.GetTableInfo(entity, DbOperateType.DELETE);
        
        string strSql = DbEntityUtils.GetDeleteByIdSql(tableInfo);
        
        IDbDataParameter[] parms = DbFactory.CreateDbParameters(1);
        
        parms[0].ParameterName = tableInfo.Id.Key;
        
        parms[0].Value = tableInfo.Id.Value;
        
        object val = AdoHelper.ExecuteNonQuery(transaction, CommandType.Text, strSql, parms);
        
        return Convert.ToInt32(val);
    }
    #endregion
    
     
    #region 根据主键id删除实体对应数据库中的数据
    public int Remove<T>(object id) where T : new()
    {
        TableInfo tableInfo = DbEntityUtils.GetTableInfo(new T(), DbOperateType.DELETE);
        
        string strSql = DbEntityUtils.GetDeleteByIdSql(tableInfo);
        
        IDbDataParameter[] parms = DbFactory.CreateDbParameters(1);
        
        parms[0].ParameterName = tableInfo.Id.Key;
        
        parms[0].Value = id;
        
        object val = AdoHelper.ExecuteNonQuery(transaction, CommandType.Text, strSql, parms);
        
        return Convert.ToInt32(val);
    }
    #endregion 

        DbEntityUtils.GetDeleteByIdSql方法代码如下1-2:

    public static string GetDeleteByIdSql(TableInfo tableInfo)
    {
        string strSql = "delete {0} where {1} =" + AdoHelper.DbParmChar + tableInfo.Id.Key;
        strSql = string.Format(strSql, tableInfo.TableName, tableInfo.Id.Key);
        return strSql;
    }

        到这里为止简单的增、删、改、查功能都已完成,还有许多复杂的操作需要完成,但需要大量的时间和精力,这里只是分享一种思路或是作技术交流,所以不再继续深入的研究下去了,如有兴趣的也可以继续研究和分享经验。

        下面是几个类的代码,EntityManagerImpl类:

    EntityManagerImpl


    EntityManagerFactory类:

    EntityManagerFactory


    TransactionManager类:

    TransactionManager


    StudentDAL调用类:

    StudentDAL

     

    有一些园友希望能提供源码,这里将提供源码下载地址OrmTest.rar下载

  • 相关阅读:
    [转] JS报 “尚未实现” 错误
    分享到国内各SNS网站的代码
    IE8以下版本不支持动态创建的HTML5元素?
    一个较为个性化的出生日期选择
    关于拖拽上传 [一个拖拽上传修改头像的流程]
    用CSS写出漂亮的小三角
    用户自定义模块的实现方案
    纪录一则IE的bug
    onpropertychange 和 oninput
    判断脚本加载完毕
  • 原文地址:https://www.cnblogs.com/wangwei123/p/1770598.html
Copyright © 2011-2022 走看看