`

通过反射写SQL

SQL 
阅读更多
   private string Trans2Sql(T t, dbOperType dot)
        {
            Type type = t.GetType();
            string result = "";
            PropertyInfo[] properties = type.GetProperties();
            StringBuilder sb = new StringBuilder();
            StringBuilder sIn = new StringBuilder();
            foreach (PropertyInfo field in properties)
            {
                switch (dot)
                {
                    case dbOperType.Select:
                        sb.Append(field.Name).Append(",");
                        break;

                    case dbOperType.Insert:
                        sb.Append(field.Name).Append(",");
                        sIn.Append(DBUtils.GetSqlString(field.PropertyType, field.GetValue(t, null))).Append(",");
                        break;

                    case dbOperType.Update:
                        sb.Append(field.Name).Append("=")
                            .Append(DBUtils.GetSqlString(field.PropertyType, field.GetValue(t, null)))
                            .Append(",");
                        break;
                    case dbOperType.Delete:
                        break;

                }

            }
            if (sb.Length > 0)
                sb.Remove(sb.Length - 1, 1);

            if (sIn.Length > 0)
                sIn.Remove(sIn.Length - 1, 1);

            switch (dot)
            {
                case dbOperType.Select:
                    result = "select " + sb.ToString() + " from " + type.Name;
                    break;

                case dbOperType.Insert:
                    result = "Insert into " + type.Name + "(" + sb.ToString() + ")";
                    result += " Values(" + sIn.ToString() + ")";
                    break;

                case dbOperType.Update:
                    result = "Update " + type.Name + " set " + sb.ToString();
                    break;

                case dbOperType.Delete:
                    result = "Delete from " + type.Name;
                    break;
            }
            return result;
        }

2011-6-14 22:16 danny
分享到:
评论

相关推荐

    注解反射生成SQL语句

    在本篇中,我们将深入探讨如何利用注解和反射来生成SQL语句,这对于构建灵活、可扩展的数据访问层至关重要。 注解是一种元数据,它提供了在代码中附加信息的方式,这些信息可以被编译器或运行时环境用于验证、处理...

    反射查询SQL框架

    在IT行业中,反射查询SQL框架是一种高级编程技术,它结合了面向对象的编程特性与数据库操作,使得开发者可以通过对象和属性来动态构建SQL语句,从而实现对数据库的增、删、改、查(CRUD)操作。这种技术极大地提高了...

    C#反射生成SQL实例

    本实例主要探讨如何利用C#的反射特性来动态生成SQL语句,这在处理动态数据操作或者构建通用数据库访问层时非常有用。 反射生成SQL实例的核心在于,它允许程序在运行时动态地获取类型信息,并根据这些信息创建和执行...

    C#泛型、反射实例、自动生成sql语句

    通过反射,我们可以获取到实体类的属性及其对应的数据库字段,从而构建INSERT或UPDATE的SQL语句。这种方法极大地简化了数据库操作,提高了开发效率。 **总结** C#的泛型和反射为开发者提供了极大的灵活性和便利性...

    特性与反射得出sql语句

    本篇文章将详细探讨“特性与反射得出SQL语句”的核心知识点,并通过一个名为AttrTest的示例项目进行说明。 首先,特性(Attribute)是C#中一种元数据的形式,允许我们在代码中添加自定义的注解。这些注解可以在编译...

    sql反射模式完整版

    SQL反射模式,是一种在数据库设计和使用中应避免的不良实践。这个概念源自于软件工程中的设计模式,但它的反面——反模式,指的是那些可能导致性能下降、安全风险增加或维护困难的设计方法。这里我们主要关注的是SQL...

    利用JAVA注解与反射 - 实现SQL语句自动生成

    编写对应Entity添加相关注解,并通过SqlUtil工具,传入相关参数生成SQL语句 例如:要生成对应数据库Person的SQL增删改查 SqlUtil.create(Person.class) SqlUtil.insert(Person.class) SqlUtil.insert(Person....

    反射自定义属性拼接SQL

    在.NET编程环境中,反射是一种强大的工具,它允许我们在运行时检查和操作程序集、类型、方法等...通过这个“反射自定义属性拼接SQL”的例子,我们能够更好地理解这两者如何协同工作,以实现更高效和可维护的程序设计。

    c# 反射获取传入对象的属性拼接sql语句实现增、删、改、查

    利用反射动态拼接sql。 daohelper属于DAL层,objectdata类属于BLL层,BLL层引用DAL层。映射数据的表继承objectdata类。例如,数据表book,根据字段与属性一一对应的方式创建book类,插入数据库时,直接book.save()

    利用反射sql 动态增/删/改/查 c#

    在“利用反射SQL 动态增/删/改/查 C#”的主题中,主要涉及以下几个关键知识点: 1. **反射**:C#中的`System.Reflection`命名空间提供了反射相关的类,如`Type`、`MethodInfo`等。`Type`对象代表一个运行时的类型,...

    通过反射机制写的通用的方法

    这个“通过反射机制写的通用的方法”是为了解决数据库查询和对象映射的问题,实现更加灵活和动态的数据访问。下面我们将深入探讨这个主题。 首先,让我们理解什么是反射机制。反射是指在程序运行过程中,我们能够...

    反射框架-SQL和Oracle数据库中

    通过反射,开发者可以在运行时动态地操作类和接口,构建和执行SQL查询,实现动态的数据访问逻辑,提高代码的可扩展性和适应性。尽管反射有时可能会带来性能开销,但在正确使用和适当优化的情况下,它能够极大地提升...

    Java反射 JavaBean对象自动生成插入,更新,删除,查询sql语句操作.docx

    Java反射JavaBean对象自动生成插入、更新、删除、查询sql语句操作是指通过Java反射机制,依据提供的表名、POJO类型、数据对象自动生成sql语句的技术。这种技术具有很好的参考价值,对开发者有很大的帮助。 Java...

    C#封装MySql数据库操作,反射动态生成SQL语句

    C#封装MySql数据库操作,反射动态生成SQL语句。看程序前,最好请先看看里面的“数据库说明”文档,不然可能会一头雾水。 这是我第一次写数据库的程序,我知道有很多地方写得不好,希望能得到大家的指点。我的联系...

    通过类反射机制实现底层数据库连接

    同时,查询操作也可以通过反射完成,例如使用`createQuery()`或`createNativeQuery()`方法,它们允许我们编写HQL(Hibernate Query Language)或原生SQL,再通过执行查询并反射获取结果集。 总之,通过类反射机制...

    c# 反射获取传入对象的属性拼接sql语句实现增、删、改

    反射获取传入对象的属性拼接sql语句实现增、删、改

    使用Annotation和反射实现Bean转SQL语句Demo

    通过这个简单的示例,我们可以看到,结合Java的注解和反射功能,可以轻松地实现Bean到SQL语句的转换,大大简化了数据操作的代码,提高了代码的可读性和可维护性。在大型项目中,这样的工具或框架如MyBatis、...

    把SQL文件反射到PowerDesigner模版中

    本教程将详细介绍如何将SQL文件反射到PowerDesigner模板中,以便于分析和理解现有数据库结构,进行进一步的优化或者扩展。 首先,我们需要了解SQL文件的用途。SQL文件通常包含了创建数据库表、视图、存储过程等...

    通过反射调用静态方法

    MyBatis允许我们在XML映射文件或注解中编写动态条件,通过反射来决定在运行时执行哪个SQL语句。这极大地提高了代码的灵活性和可维护性,避免了大量的硬编码和条件分支。 此外,反射还有其他应用场景,比如在插件...

    C#利用反射类的技术实现sql动态增删改查.rar

    综上所述,"C#利用反射类的技术实现sql动态增删改查.rar"是一个关于如何在C#中利用反射进行数据库操作的实例,通过动态生成SQL语句,实现了对SQL数据库的灵活性和适应性。这种技术对于处理复杂的业务逻辑和多样化的...

Global site tag (gtag.js) - Google Analytics