手写ORM+反射的增删改查
2019-04-01 20:11
10 查看
显示:
//显示
public DataTable show<T>(T model) { //先判断传过来的是什么类型 Type t=model.GetType(); //返回公共属性 PropertyInfo[] infos=t.GetProperties(); //sql语句 string sql=string.Format("select * from"+t.Name); var ss=DBHelper.GetTable(sql)//DBHelper是sql通用类 return ss; }
添加:
public int Add<T>(T model) { //判断是什么类型的 Type t = model.GetType(); //公共属性 PropertyInfo[] infos = t.GetProperties(); //可变字符串 StringBuilder builder = new StringBuilder(); //拼接字符串 builder.Append("insert into "+t.Name+" values('"); //定义一个变量 int i = 0; //循环 foreach (var item in infos) { i++; //判断主键是不是为空 if (item.Name=="Id") { } else { if (i == infos.Length) { builder.Append(item.GetValue(model)).Append("')"); } else { builder.Append(item.GetValue(model)).Append("','"); } } } return DBHelper.Execute(builder.ToString()); }
删除:
//删除 public int Delete<T>(T model,int Id) { Type t = model.GetType(); PropertyInfo[] infos = t.GetProperties(); string str = "delete from " + t.Name + " where Id=" + Id; return DBHelper.Execute(str); }
查询:
//查询 public DataTable Select<T>(T model,int Id) { Type t = model.GetType(); PropertyInfo[] infos = t.GetProperties(); string str = string.Format("select * from "+t.Name+" where Id="+Id); return DBHelper.GetTable(str); }
反填:
//反填 public DataTable fan<T>(T model,int Id) { Type t = model.GetType(); PropertyInfo[] infos = t.GetProperties(); string str = string.Format("select * from "+t.Name+" where Id="+Id); return DBHelper.GetTable(str); }
修改
//修改 public int xiu<T>(T model,int Id) { Type t = model.GetType(); PropertyInfo[] infos = t.GetProperties(); StringBuilder str = new StringBuilder(); str.Append("update" + t.Name + "set"); foreach (var item in infos) { str.Append(item.Name+"='"+item.GetValue(model)+"',"); } str = str.Remove(str.Length-1,1); str.Append(" where Id="+Id); return DBHelper.Execute(str.ToString()); }
相关文章推荐
- java:手写MyLinkedList所有方法,增删改查
- 分析 + 手写 ArrayList 源码 (增删查询)
- 分析 + 手写 LinkedList 源码(增删查询)
- 手写dataview增删改查事件
- 什么是Pro*C/C++,嵌入式SQL,第一个pro*c程序,pro*c++,Makefile,Proc增删改查
- 模拟泛型DAO增删改查--->jdbc实现
- Django数据库操作的实例(增删改查)
- 2.非关系型数据库(Nosql)之mongodb:mongodb显示所有数据库,使用数据库,集合创建(显示和隐式创建),集合查询,初步数据的增删改查,分页
- Thinkphp3.2.3版本的数据库增删改查实现代码
- 百度鹰眼Java接口调用增删改查实例
- 项目1:ItcastOA(4):流程说明:岗位管理分析功能,增删改查
- 外键的增删改查练习
- Mybatis+JDBC 实现单表增删改查
- java实现链表,增删改查
- CoreData-基本数据操作(增删改查)
- MongoDB 针对嵌套对象,多层级结构存储,增删改查
- java servlet开发购物车功能,实现增删改查结算等功能。
- 2.非关系型数据库(Nosql)之mongodb:mongodb显示所有数据库,使用数据库,集合创建(显示和隐式创建),集合查询,初步数据的增删改查,分页
- mybatis学习之路----非代理方式的增删改查用法
- iOS开发UI基础—手写控件,frame,center和bounds属性