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

  • 相关阅读:
    C语言学习笔记<九>
    C语言学习笔记<六>
    C语言学习笔记<八>
    C语言学习代码〈五〉
    C语言学习笔记<七>
    红队笔记横向移动总结
    pikachu通关
    java线程监控
    项目空负载服务器使用cpu过高
    @NotBlank注解使用不生效的解决办法
  • 原文地址:https://www.cnblogs.com/wangwei123/p/1770598.html
Copyright © 2011-2022 走看看