功能和形式的反思sql声明 一个

日前必须使用sql语句来查询数据库 但每次你不想写一个数据库中读取所以查了下反射

我想用反映一个实体的所有属性,然后,基于属性的查询和分配值

首先,须要一个实体类才干反射出数据库相应的字段,

可是開始写属性的时候,我看见特性蛮好用的,能够实现切面编程.

我也查了特性,可是网上这方面资料不多,大多都是介绍,仅仅能自己慢慢摸索了.

    [Model.Context.SelectContext]
    public class Entity
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }

弄一个实体类,设置一个特性

Context.SelectContext

能够表示能够用来查询数据

接下来定义SQLHelp类查询

<span style="white-space:pre">	</span>/// <summary>
        /// 查询集合
        /// </summary>
        /// <param name="T">查询的实体 new()</param>
        /// <param name="sql">sql语句</param>
        /// <param name="result">生产实体运行的操作</param>
        /// <param name="param">可变參数</param>
        /// <returns>返回集合</returns>
        public static IEnumerable<T> SelectReader<T>(string sql, Func<System.Data.Common.DbDataReader, T> result, params System.Data.Common.DbParameter[] param)
           where T : class
        {
            using (SqlConnection con = new SqlConnection(connString))
            {
                SqlCommand cmd = new SqlCommand(sql, con);
                cmd.Connection.Open();
                if (param != null && param.Length > 0)
                    cmd.Parameters.AddRange(param);
                SqlDataReader dr = cmd.ExecuteReader();
                var list = new List<T>();
                while (dr.Read())
                {
                    T t = result(dr);//产生实体类托付,依据sqlDateReader产生一个实体类
                    if (t != null)
                        list.Add(t);
                }
                dr.Close();
                return list;
            }
        }

一个查询方法依据sql语句来返回一个集合

下一篇写sql辅助类,用来定义一个sql操作的模板

全部源代码 http://download.csdn.net/detail/qq6648208281/7939613

下一篇 http://blog.csdn.net/qq6648208281/article/details/39379271

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-11-03 21:51:36

功能和形式的反思sql声明 一个的相关文章

什么情况下使用break关键字? 什么情况下使用Continue关键字? Java如何声明一个数组?JS如何声明一个数组?如何获取数组长度? 如何遍历数组?

什么情况下使用break关键字?什么情况下使用Continue关键字? Break Break关键用于终止循环. 示例: 1 2 3 4 5 6 for (int i = 0; i < 10; i++) {   if (i == 4) {     break; //终止循环,后面的循环不再执行   }   System.out.println(i); } Continue Continue关键字用于终止本次循环,其它循环继续. 示例: 1 2 3 4 5 6 7 for (int i = 0;

打印Ibatis最后,SQL声明

做项目时,满足这一需求.我们希望最终打印出在数据库运行SQL声明,这些都普遍遇到了一些一般性问题.我会去Appfuse,结果这次没有成功.它是有相关的配置,可是好像没实用.我也就没有深查下去.我想这种问题网上肯定有人遇到过.仅仅要找到这个人即可了.经过换不同的keyword.我最后找到了例如以下的配置. log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.lo

声明一个MyClass类,在类中声明一个常量,和一个成员方法

<?php class MyClass { //声明一个MyClass类,在类中声明一个常量,和一个成员方法 const CONSTANT = 'CONSTANT value'; //使用const声明一个常量,并直接赋上初使值 private $foo; private $sss; function __construct($foo,$sss){ $this->foo = $foo; $this->sss = $sss; } function showConstant() { //声明

功能决定形式悟

最近看了<黑客与画家>, 又重新思考了一次"功能决定形式"这一命题. 很早以前就从直觉和一些亲身经验模糊的体会到这一点,也在日常生活和工作中践行,最近这本书让我继续深入思考了更多的例证. 自然界的规则总是功能决定形式, 冗余的.拖累本体的形式并非不产生,而是在自然进化中多数被淘汰了.自然界总是有丰饶期和枯萎期,丰饶期物产富,同样的功能下,会分化出多种形式,且都还能维持生存,一到枯萎期,那些不好的形式和冗余的形式都将淘汰. 今天看到知乎网上有人问器械健身好还是自体重健身好,排

安卓声明一个全局变量,每个activity都可以调用和修改

当需要一个变量,每个activity都能够调用和修改的时候,可以先创建一个类,让他继承Application,并实现一些方法就行了,下面的例子:App打开,文本显示全局变量的初始值,点击按钮,文本值改变,并更新显示. 首先创建一个类:Myapplication.java package com.example.application; import android.app.Application; public class Myapplication extends Application {

条款十一: 为需要动态分配内存的类声明一个拷贝构造函数和一个拷贝赋值运算符

看下面一个表示string对象的类: // 一个很简单的string类 class string { public: string(const char *value); ~string(); ... // 没有拷贝构造函数和operator= private: char *data; }; string::string(const char *value) { if (value) { data = new char[strlen(value) + 1]; strcpy(data, value

sql中一个服务器建立另一个服务器的连接

EXEC sp_addlinkedserver 'TonyLink','','SQLOLEDB','111.111.1.111(服务器名)' EXEC sp_addlinkedsrvlogin 'TonyLink','false',NULL,'账号','密码' TonyLink 是固定的 SELECT *FROM TonyLink.ETLDB.dbo.aaaa sql中一个服务器建立另一个服务器的连接

SQL 创建一个只读账户 .

1.进入sqlserver management studio 2.选择安全性->登录名->右键新建登录名 3.在常规里输入用户名和密码 4.在"用户映射"里“映射到此登录名的用户”选择该用户可以操作的数据库 5.在“数据库角色成员身份”里选择"db_datareader", 6.这样一个只读用户就创建完成了. 服务器角色参考 (可以对数据库的操作) bulkadmin 可以运行 bulk insert 语句  bulk insert 详细 http:/

SQL SERVER 一个SQL语句的执行顺序

原文:SQL SERVER 一个SQL语句的执行顺序 一个SQL 语句的执行顺序 1.From (告诉程序 来自哪张表  如果是表表达式 依旧是如此顺序) 2.Where(条件筛选  谓词筛选 ) 3.Group by(分组) 4.Having(分组  谓词筛选 ) 5.Select (表达式) 6.表达式(开窗函数 聚合函数 等等) 7.Distinct(去重复) 8.ORDER BY 9.TOP/OFFSET-FETCH 原文地址:https://www.cnblogs.com/lonely