我的开发框架之ORM框架

今天我想分享一下我自己的ORM框架,虽然谈不是很好,但我个人认为还是蛮好用的,跟大家分享交流一下。

首先说说我对现在主流的ORM框架的一些看法:

优点:

  1. 让程序员不再关注数据库细节,专心在业务逻辑上,程序员可以不懂数据库就可以开发系统。
  2. 让数据库迁移变的非常方便,如果系统需要更改使用的数据库,直接改配制就好了,不要再管不同数据库之间的语法差异。
  3. 省时,可快速开发,因为不需要自己写复杂的SQL语句,不需要封装复杂的数据底层,这样可以节省很多时间。

缺点:

  1. 我觉得不懂数据库的程序员不是好程序员,ORM不能帮你生成所有的业务语句,有些复杂的生成不了,还是需要写SQL,例如复杂的报表。
  2. 配制过于繁琐,出错后不好定位问题点在哪。
  3. 性能低,因为它内部是使用了大量反射,还有数据库检测,造成性能必然低下。
  4. 需要额外的学习成本,虽然不需要学习数据库,但是需要学习ORM语句。
  5. 容易引起不规范开发,因为ORM可以在任何地方写ORM语句然后调用开发,这样对于初始程序员来说他们很可能在系统的任何地方乱丢ORM语句,这样给维护带来了很大的难度。

因为我一直都不看好这些ORM框架所以缺点写多了点,可能还有些优点是我不知道的,路过的人要是知道可以给我留言,我再补上。

那现在来谈一下我自己的ORM框架,之所以称它为ORM框架是因为,它也达到了上面ORM框架的几个优点。

首先我基于抽像数据操作层,写了一套基于ADO.NET的抽像操作数据库的方法DbHelper

然后基于这个DbHelper 我开发了抽象数据操作引擎,并扩展了不同的数据库支持 这里只显示了mysql的,还有MSSQL,ACCESS其实所有支持ADO.NET的数据库都可以扩展进来

这样做了以后,我的框架就可以做到数据库无关性了,我可以使用任何数据库,甚至可以混达数据库。

现在我再说说怎么快速开发和让程序员不用关注SQL语句。

对于程序员来说,没有比看代码更直接的了,我先给大家看看代码:

这里演示了 增删改查方法,首先这里我没有写一句SQL,也没有ORM语句,写法上应该比较直观,我们数据模型进行了扩展,给字段都加入了属性。

如果我要设置一个字段的值,我就会把它的IsValue设置为真,如果我要查询一个字段我就把它的IsColume设置为真,我个人理解这种方式更接近OOP思想,更直接更容易理解,至少我现在带新人让他们用这个能很快上手,几乎没压力。

这样也避免了初级程序员随便写SQL语句,同时也方便维护和管理,又能快速开发,最主要是性能很高,因为我没用反射,也不需要ORM语句到SQL语句的翻译,同时也可以定制只查询出部分字段(现在好像一些ORM达不到这个效果)。

那有人可能会说 你的实体模型肯定很复杂,要写这个肯定很费时间,其实这句话对了一半,因为实体模型确实变复杂了,但并不费时间,因为我在上一篇博客中有提到过,我的实体模型全都是自动生成出来的,根本不需要人工来操作,包括我的数据层的代码,它确实很大很复杂,但不需要人工处理,一步生成出来就直接可以用了。

好了,今天就介绍到这里了,我的框架的具体细节后续我会慢慢的详细介绍出来,有兴趣的可以看看。同时欢迎大家对我的框架提出宝贵的意见。

时间: 2024-10-16 16:32:40

我的开发框架之ORM框架的相关文章

PDF.NET 开发框架之 SOD框架 Ver 5.2 正式版开源源码发布

PDF.NET 开发框架之 SOD框架 Ver 5.2.1.0307 正式版发布,包含以下部分: SOD_Pwmis.Core --包括下列数据提供程序 SqlServer SqlServerCe Access OleDb ODBC Oracle --包含框架的核心类库 PDF.NET SOD All --包括框架的全部类库和数据提供程序,目前有 SQLite MySQL PostgreSQL PDF.NET SOD AllSource --包括全部类库源码和示例程序源码,包括超市管理系统源码

各种ORM框架对比(理论篇,欢迎来观摩)

各种ORM框架对比 目前框架有以下 PetaPoco Dapper.NET Massive Simple.Data Chain PetaPoco 轻量级,以前单文件,目前有维护形成项目级别,适合多个数据库,开发入手比较快,二次开发扩展简单,模型Emit映射,数据交互需要Code,并且需要编写脚本,接口上有自动翻页,支持多对象查询返回 使用示例: //保存对象 db.Save(article); db.Save(new Article { Title = "Super easy to use Pe

ORM之殇,我们需要什么样的ORM框架?

最近在研究ORM,究竟什么样的框架才是我们想要的 开发框架的意义在于 开发更标准,更统一,不会因为不同人写的代码不一样 开发效率更高,无需重新造轮子,重复无用的代码,同时简化开发流程 运行效率得到控制,程序稳定性得到提高 把网上关注比较多的框架搜了搜,作了个列表 Nhibernate来源于Java的Hibernate参考:http://www.cnblogs.com/ylwn817/articles/1963528.html Entity Framework微软本家框架,都比较熟悉 iBATIS

atitit.orm的缺点与orm框架市场占有率,选型attilax总结

1. attilax的orm框架要求 1 2. orm框架市场占有率 2 3. spring jdbc templt 3 4. eclipselink /toplink  不好用 4 5. jooq 的总结 4 6. attilax的选择 atiorm 4 7. 参考 4 1. attilax的orm框架要求 1.无需配置文件或注解..直接从map.json生成sql 2.直接获取sql..无需连接数据库..方便调试.或这sql传输. 作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:

最好的5个Android ORM框架

在开发Android应用时,保存数据有这么几个方式, 一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择). 对于第一种方式,即本地数据存储,如嵌入式SQLLite,你可以选择直接使用SQL语句.Content Provider 或 ORM(对象关系数据映射). 对于 Android 应用的开发,主要是使用Java语言,所以适用于Java语言的一些ORM,也能移植于 Android 平台上. 下面是5个可用ORM的总体介绍

ORM框架详解

.Net开源微型ORM框架测评 什么是ORM? 对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言里使用的"虚拟对象数据库". 一般的ORM包括以下四部分: 一个对持久类对象进行CRUD操作的API: 一个语言或API用来规定与类和类属性相关的查询: 一个规定MAPPING METADATA的工具: 一种

轻量型ORM框架Dapper的使用

在真实的项目开发中,可能有些人比较喜欢写SQL语句,但是对于EF这种ORM框架比较排斥,那么轻量型的Dapper就是一个不错的选择,即让你写sql语句了,有进行了关系对象映射.其实对于EF吧,我说下我个人的见解,EF是相对来说比较重的ORM框架,它是讲究通用性的框架,而非单纯的实现某种需求的框架,不得不否认的说,EF的开发效率要比用单纯的ADO.NET写sql语句的效率高的不是一点半点,可能很多人会说EF的性能低等等,针对这种问题有时候是需要折中的来讲,从另一个方面来讲,你用了ADO.NET写s

Net框架下-ORM框架LLBLGen的简介(转载)

Net框架下-ORM框架LLBLGen的简介 http://www.cnblogs.com/huashanlin/archive/2015/02/12/4288522.html 官方网址:http://www.llblgen.com/

GreenDao开源ORM框架浅析

Android程序开发中,避免不了要用到数据库,我们都知道android提供了内置的Sqlite,即调用SQLiteOpenHelper的方法,来操作数据库,但是使用过程较为繁琐,从建表到对表中数据的正删改查操作,需要大量的代码来建立表,和完成这些操作. GreenDao居然是ORM框架,它跟hibernate是很像的,就是当你配置了一些参数信息之后,可以由框架来帮你生成对应的实体类,还有生成对应的操作实体类的代码(自动建表和基本的增删改查). 优点: 1.最大性能(最快的Android ORM