码迷,mamicode.com
首页 > 数据库 > 详细

ORM 实现数据库表的增删改查

时间:2016-03-29 23:48:51      阅读:418      评论:0      收藏:0      [点我收藏+]

标签:

 

         这次通过反射技术来实现一下数据库表的增删改查对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)

        注:引用时约束了以下几点:

  • 数据库表的表名类的类名一致
  • 数据库字段名类字段名一致
  • 自增字段的访问权限为private其余字段都为public

     注:如果用的是MySql数据库,有提供好的MySqlhelper非MySql数据库可以参考我写好的SqlHelper

 

SqlHelper参考位置:http://www.cnblogs.com/fengxuehuanlin/p/5271944.html

 

1.数据插入封装:

 


 

 

 

 

/// <summary>
        /// 完成数据的插入
        /// 要求:1.数据库表名为类名
        ///       2.数据库字段名和类字段名相同
        ///       3.自增字段设置为private
        /// </summary>
        /// <param name="obj"></param>
        public static void Insert(object obj)
        {
            StringBuilder Sql =new StringBuilder ();
            Type type = obj.GetType();
            FieldInfo[] fields = type.GetFields();//获取类中所有字段信息,(表中的所有字段)
            string[] keys = new string[fields.Length];//存取字段信息
            string[] param = new string[fields.Length];//存储参数化查询的参数
            string[] values = new string[fields.Length];//每个字段对应的值
            MySqlParameter[] sqlParameter = new MySqlParameter[fields.Length]; //参数化查询
            string table=type.Name;           //获取类名(表中的表名)
            for (int i = 0; i < fields.Length; i++)
            {             
                keys[i] = (fields[i].Name).ToString();  //字段名
                param[i] = "@" + (fields[i].GetValue(obj)).ToString();  //参数名
                values[i] = (fields[i].GetValue(obj)).ToString();   //字段值
                MySqlParameter sqlparam = new MySqlParameter();//进行参数化查询
                sqlparam.ParameterName = param[i];  //参数化查询用于替换的名字
                sqlparam.Value = values[i];         //对应的值
                sqlParameter[i] = sqlparam;       
             }             
            string sqlkey = string.Join(",",keys);  //将字段数组转换为字符串
            string sqlparamstr = string.Join(",", param); //将参数数组转换字符串
            Sql.Append("insert into " + table + " (" + sqlkey + ") values (" + sqlparamstr + ")");
            SqlHelper.ExecuteNonQuery(Sql.ToString(), sqlParameter); //通过SqlHelper完成操作                      
        }

 

2.数据删除封装:

未完:待补充......

3.数据更新封装:

未完:待补充.......

4.数据查询封装:

未完:待补充.......

 

ORM 实现数据库表的增删改查

标签:

原文地址:http://www.cnblogs.com/fengxuehuanlin/p/5335116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!