• 封装SQL2005数据库操作的Framework


    你还在为每个逻辑书写一堆SqlParameters[]或者SqlDataReader[]吗?

    你还在写代码生成器或者通过使用代码生成器去生成dao层代码吗?(生成的代码太死板)

    你还在使用ORM来配置映射文件、编写实体,来实现操作数据库吗?(ORM配置写起来很繁琐)

    你还在通过大量存储过程来封装SQL逻辑、约定传入传出参数吗?(跟数据库太亲密了)

    好了,请不要再做以上的繁琐工作,通过我最新的框架来解决你们的问题。

    无论是sql2000还是sql2005数据库操作,无非就是三个地方要注意:

    1.sql语句

    2.参数

    3.返回的结果(含实体列表)

    基本上所有的操作都由这三部分组成,如果我们的程序是三层架构,那么我们的返回的结果可能就是实体层。实际上实体层可以包含很多东西,比如传入参数也是个实体,返回结果列表也是实体组成。

    (一)、我们先围绕着返回结果的实体来进行延伸,把SQL语句通过Attribute特性附加到实体上,那么我们的业务逻辑层,只需要根据我需要取的数据实体去执行它Attribute上的SQL语句,并返回该实体列表结果值。

    (二)、那么同样我们围绕着参数的实体来进行延伸,如果我们的业务逻辑层需要执行一个Insert/Update/Delete操作,只需要根据我该参数实体去执行它Attribute上的SQL语句,并返回影响的行数。

    (三)、如果业务逻辑的某一个操作既有参数实体,又有返回结果实体,我们就以返回实体为主,调用时将参数实体赋值,执行返回实体上的SQL。

    通过以上思路,基本上我们的业务逻辑层只需要寻找我需要的实体即可,而之前的Dao完全就消失了,它与我们之前的Model层合成了一个新的Model层,该新Model层包含了TSQL和参数。

    按照这个思路,我书写这个框架时解决的几个重要难点在于:

    1.如何将参数实体的值转换为SqlParameters[].

    2.如何将查询结果SqlDataReader转换为返回结果实体.

    3.如何执行实体上附着的SQL语句.

    大家可以通过查看源代码了解我的思路,很抱歉代码里没有过多备注.

    框架已经写好了,源代码里含有一个测试的Demo,如何使用这个框架很简单,注意一下步骤:

    1.配置Config:<add key="ConnString" value="server=.;uid=sa;pwd=;database=msdb"/>

    2.在Model的Class上添加Select(此次只实现了查询)的Attribute,写上Column,Table,默认排序方式.

    3.业务逻辑层使用时,直接调用方法SelectHelper.Read<T>即可返回T的实体列表,当然方法含TSQL参数和分页条件.

    使用效果截图:

     

    源代码下载: sql2005.Framework 含SQL2005排序的新功能,目前暂实现了Select的封装,后期会实现Insert,update,Delete(其实很简单了).

  • 相关阅读:
    2、Mybatis中一些常用的概念
    1、Mybatis的基本CRUD
    4、spring 官方下载地址
    3、Spring注解用法的一般步骤
    2、Spring开发的jar文件
    1、Spring的xml完整版命名空间
    1、Struts2和Hibernate的简单整合(带Session的管理方式)
    2、Struts2引入多个配置文件
    利用filter和动态代理解决全站乱码问题
    1、Struts2 的简单配置
  • 原文地址:https://www.cnblogs.com/chf/p/sql2005Framework.html
Copyright © 2020-2023  润新知