利用反射将Model转化为sql

 public string GetInsertSqlByModel(Object o)
        {
            StringBuilder sbStart = new StringBuilder();
            StringBuilder sbFields = new StringBuilder();
            StringBuilder sbValues = new StringBuilder();
            Type t = o.GetType();
            string modelName = t.Name;
            foreach (PropertyInfo p in t.GetProperties())
            {
                sbFields.Append(p.Name + ",");
                sbValues.AppendFormat("‘{0}‘,",p.GetValue(o));
            }
            sbStart.AppendFormat("insert into {0}({1}) values({2})",modelName,sbFields.ToString().TrimEnd(‘,‘), sbValues.ToString().TrimEnd(‘,‘));
            return sbStart.ToString();
        }

如果不需要添加为null或者为空的栏位,则可以使用如下代码

      public string GetInsertSqlByModel(Object o)
        {
            StringBuilder sbStart = new StringBuilder();
            StringBuilder sbFields = new StringBuilder();
            StringBuilder sbValues = new StringBuilder();
            Type t = o.GetType();
            string modelName = t.Name;
            foreach (PropertyInfo p in t.GetProperties())
            {
                if (p.GetValue(o) == null||string.IsNullOrEmpty(p.GetValue(o).ToString()))
                {
                    continue;
                }
                sbFields.Append(p.Name + ",");
                sbValues.AppendFormat("‘{0}‘,",p.GetValue(o));
            }
            sbStart.AppendFormat("insert into {0}({1}) values({2})",modelName,sbFields.ToString().TrimEnd(‘,‘), sbValues.ToString().TrimEnd(‘,‘));
            return sbStart.ToString();
        }
    }
时间: 2024-11-05 23:19:20

利用反射将Model转化为sql的相关文章

利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理

利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理 2018-3-10 15:18 | 发布:Admin | 分类:代码库 | 评论:0 | 浏览:45 | 该类在MVC中可以方便管理配置信息,可以直接把Model储存进数据库或者从数据库去除数据转为Model. 1 何为配置项目? 比如网站的名称,页脚信息,meta中的KeyWord信息等,如果不想硬编码到网页里,就需要使用配置文件进行储存,通常都是储存到数据库中.使用的时候读取出来

利用反射机制 实现 javabean 转化为 map

package com.test.entity; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Type; import java.util.Collection; import java.util.Date; import java.util.HashMap;

【WindowsPhone】利用反射初始化和添加 SQLite数据库

首先引用命名空间 using System.Reflection 了解一下 Assembly 类 // // 摘要: // 表示一个程序集,它是一个可重用.无版本冲突并且可自我描述的公共语言运行时应用程序构造块. public abstract class Assembly 我们把Model类都约定好放在同一个命名空间下,下面以User类为例: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 u

【C#】利用反射构建实体

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Reflection; namespace RftToModel { class Program { static void Main(string[] args) { var result = ToModel<TestModel>.GetDelegate_To

Java -- JDBC_利用反射及 JDBC 元数据编写通用的查询方法

先利用 SQL 进行查询,得到结果集: 利用反射创建实体类的对象:创建对象: 获取结果集的列的别名: 再获取结果集的每一列的值, 结合 3 得到一个 Map,键:列的别名,值:列的值: 再利用反射为 2 的对应的属性赋值:属性即为 Map 的键,值即为 Map 的值. 使用 JDBC 驱动程序处理元数据 Java 通过JDBC获得连接以后,得到一个Connection 对象,可以从这个对象获得有关数据库管理系统的各种信息,包括数据库中的各个表,表中的各个列,数据类型,触发器,存储过程等各方面的信

利用反射处理多个表结构相同的数据的查询和数据库表的关联

最近做一个项目,需要对人口数据进行查询,但是人口数据分布在不同的街道表中,首先进行了数据表结构的统一,每个数据表以街道名开头,然后其他的名字都一样 前期将各个表中的字段也进行了统一 抽象出一张字典表 将街道编号和街道的名字的首字母连接起来,因为查询的时候是利用街道编号来的,这样可以根据街道标号拼出相对于的街道表的名字,(每个人口相关的表不止一张,因此需要统一):在查询过程中,将查询到的结构返回一个LIST,(不同的表在dao中当然对于不同的类啊,返回来再判断是哪一类),然后利用反射Field[]

jdbc增删改查,利用反射查询

整理自http://blog.csdn.net/yanzi1225627/article/details/26950615,谢谢作者! 本文我的爱点是: 1.利用反射实现数据库数据查询 2.编写一个sql语句,其中的参数用?来代替,然后将参数写到List里 例如使用例子: 1 String sql = "delete from userinfo where username = ?"; 2 List<Object> params = new ArrayList<Obj

JDBC 利用反射 配置文件

import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Collection; import java.util.Properties; public class JDBC { p

JDBC学习笔记——利用反射及JDBC元数据编写通用的查询方法

我们的查询操作,对于不同的数据表examstudent和customers,会有不同的代码编写过程,利用反射和JDBC元数据可以编写通用的方法进行对不同数据表的查询. 在此之前我们是这样做的: 查询customers表中的字段以及字段值: 1 public Customer getCustomer(String sql, Object... args) { 2 Customer customer = null; 3 Connection connection = null; 4 Prepared