奋斗的博客

开源、创新!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

    前面简单的修改功能已经实现了,下面是实现删除功能,代码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下载

posted on 2010-07-03 19:29  奋斗  阅读(3601)  评论(11编辑  收藏  举报