• 学习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达不到这个效果)。

    转自隔壁老王。。。。。。。。。。。。。。

  • 相关阅读:
    mysql数据库分区功能及实例详解
    Mysql线程池优化笔记
    mariadb multi-source replication(mariadb多主复制)
    mysql---二进制日志
    MySQL binlog_format (Mixed,Statement,Row)[转]
    如何生成唯一的server Id,server_id为何不能重复?
    mysql复制过程中的server-id的理解
    MySQL参数:innodb_flush_log_at_trx_commit 和 sync_binlog
    Mysql 用户和权限管理
    B+树索引和哈希索引的区别[转]
  • 原文地址:https://www.cnblogs.com/yanhuahayi/p/8076260.html
Copyright © 2020-2023  润新知