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下载

  • 相关阅读:
    typedef
    心目中的编程高手
    截取包含多字节字符的字符串
    Start deltacat Audio Mix Filter
    关于编译环境和DLL的惨痛教训
    【转】自定义Extjs中Grid单元格的显示格式
    Ajax 按需 提交指定字段 以 Json Model 形式 post 到 action
    [转]Log4Net 非常完整的配置。
    【转】Ext.data.Store
    this.getColumnModel is not a function Extjs 如何解决呢? Extjs 导出 到Excel 解决方案问题
  • 原文地址:https://www.cnblogs.com/wangwei123/p/1770598.html
Copyright © 2011-2022 走看看