介介介是一个ORM

介个是一个ORM,介个ORM基于Dapper扩展。

为什么需要一个ORM呢?

支持简单的LINQ查询

但是不能连表查询,why?why?why?为什么不能连接查询 ^.^ ok.但是就是不支持。哈哈哈哈,最后谈一谈为什么

SQL 基本

基本的写法

一次

二次

三次

第一:会造成系统臃肿,DLL编译代码量变大

第二:不方便维护

第三: DLL都变大了,创建的时候内存不占大了....................................................好吧,又开始瞎扯蛋

介个时候,我们需要一个方便的能重复使用的东西(ORM)

开始来介绍使用方法吧(ORM最后都是执行SQL,so model to sql):

实体类(OK,我们用到了特性)

Table:表名

Key:主键

Identity:自动增长列

Status:逻辑删除(假删除)

哈哈 ,几百张表的话,我是不是需要手动去写? no.no.no. 我们有T4模板 自动生成

现在看下扩展结构:

Find(查询):

TEntity Find(Expression<Func<TEntity, bool>> expression)

expression 查询条件:重复的只会查询一条 Top 1

Delete(删除):

bool Delete(TEntity instance) :

instance : 根据实体类中的Key(主键) 删除

bool Delete(Expression<Func<TEntity, bool>> expression) :

expression :条件 和查询一样

Update(修改):

bool Update(TEntity instance):

instance:根据实体类Key(主键)修改实体类

Update(TEntity instance, Expression<Func<TEntity, object>> field):

instance \ field :根据实体类Key(主键)修改实体类指定的字段(field)

bool Update(TEntity instance, Expression<Func<TEntity, object>> field, Expression<Func<TEntity, bool>> expression):

instance \ field \ expression :根据置顶条件(expression)修改实体类(instance)指定的字段(field->field为Null时为全部字段)

好吧,再来个分页:

from: 第几页

to :每页多少条

expression:条件

scfield : 排序条件

idDesc : 是否降序

特么的没事务啊,没事务,不完善什么ORM....我也想说,你自己写的什么什么玩样?

特么的没连表查询啊,什么ORM,MDZZ~~~

无需链表、无需子查询、数据库中每表可分布在不同服务器,完美解决数据关系,轻松承载百亿数据,千万流量,完美思想............哈哈哈

数据连接池 --->

1. 资源重用

2. 更快的系统响应速度

3. 新的资源分配手段

4. 统一的连接管理,避免数据库连接泄漏

配置文件,没错就是配置文件。

key = default 默认的连接字符串 :未配置的实体类连接默认配置的数据库

key = 表名 :配置的实体类连接配置的数据库

why?why?why? 为了方便扩展分表分库:

数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。

好吧,这是简述,骚年找资料去吧,用‘洪荒之力‘;

介个样子的话连表查询平常的写法不能满足啊,怎么办?:

使用AutoMapper 连接起来即可,Foreach...代码多啊。

事务,怎么办,自己写咯:

如果数据一致性要求高,那只能锁(分布式锁),或者数据库写存储过程事务....

so .....介介介就是一个ORM!

开源地址

时间: 2024-09-30 14:54:01

介介介是一个ORM的相关文章

一个ORM的实现(附源代码)

1 前言 经过一段时间的编写,终于有出来一个稳定的版本,期间考虑了多种解决方案也偷偷学了下园子里面大神们的作品. 已经有很多的ORM框架,为什么要自己实现一个?我的原因是在遇到特殊需求时,可以在ORM中加入特定的代码.如 :根据数据库的字段长度和可空性做基本的数据验证,在ORM中解决数据修改时的同步问题… 本文主要关注的是如何实现ORM方面,其它的大家可以参考以下两篇文章: 用T4 Template生成代码:参考此文,可以知道本ORM是如何根据数据库,生成实体层代码.有了这个基础,就可以看懂本文

【手撸一个ORM】使用说明

传送门 [手撸一个ORM]第一步.约定和实体描述 [手撸一个ORM]第二步.封装实体描述和实体属性描述 [手撸一个ORM]第三步.SQL语句构造器和SqlParameter封装 [手撸一个ORM]第四步.Expression(表达式目录树)扩展 [手撸一个ORM]第五步.查询条件表达式目录树解析和插入.更新查询目录树解析 [手撸一个ORM]第六步.对象表达式解析和Select表达式解析 [手撸一个ORM]第七步.SqlDataReader转实体 [手撸一个ORM]第八步.实体查询和按需查询 [手

推荐一个orm框架--jrom,面向对象的可以自动创表超轻量级orm

今天给大家推荐的是一个超轻量级的orm,可以根据java实体自动生成和修改表结构,提供BasicDaoImpl<T,ID>作为抽象父类,通过泛型和反射可提供子类的增删改查和分页功能.通过Filter和Order等面向对象的API进行条件查询和分页,本框架基于Spring配置,可以无缝隙和Spring集成.是想用hibernate或jpa但又不像学习他的繁琐api,想用mybatis但又不想写sql和创建表结构的程序猿的不二选择!!!! 不废话了,源码地址:https://github.com/

如何做好一个ORM框架

很多人都不太认可以第三方ORM,因为考虑的点不够全面,没有用户群体大的ORM有保证,这点是不可否认确是事实. 但是往往用户群体大的ORM又有不足之处,就拿用户群体最多的两个ORM来说一下吧 1.EF EF性能够用,但是总体还是和轻量级ORM有一定差距,如果没有差距就没有Dapper什么事儿了. 2.Dapper 性能不错,兼容也好但是就是语法太少,基本都要手写SQL,或自已扩展,自己扩展考虑的点可能连第三方ORM都不如,只能够自已需求使用,发现问题自已来改,没发现问题也挺安逸. 我的ORM之旅

汉语-词语:狷介

ylbtech-汉语-词语:狷介 狷介一指拘谨小心:二指性情正直,洁身自好,不与人苟合.介:孤高,特出. 狷介之人,砭清激浊 1.返回顶部 1. 中文名:狷介 读    音:juànjiè 释    义: 拘谨小心. 出    处:<国语.晋语二> 解释 出处:<国语.晋语二>:“小心狷介,不敢行也.” 2, 性情正直,洁身自好,不与人苟合. 出处:<三国志.魏书.田畴传>:“有司劾畴狷介违道,苟立小节,宜免官加刑.”苏轼<贾谊论>:“亦使人君得如贾生之臣,

分享一个自己写的.Net的ORM工具

注册博客园帐号也有好几年了,之前注册帐号主要是为了看别人的文章下载东西的时候方便.从来没有写过什么博客,一直以为只要注册了帐号就可以写博客,最近用到了才发现还得申请一下,于是就申请了博客,算了也不扯这么多没用的了,直接进入主题吧! 网上开源的ORM工具也不少,开源中国上就有不少,很多都下载试用过,不过感觉用起来都不是很方便,园子里面也有不少人分享自己写的ORM工具,用过一个叫 MySoft.Data 的ORM工具,感觉里面的链式调用函数的写法不错,但是用起来感觉也有些不如意的地方,于是某个周末的

[python] 理解metaclass并实现一个简单ORM框架

metaclass 除了使用type()动态创建类以外,要控制类的创建行为,还可以使用metaclass. metaclass,直译为元类,简单的解释就是: 当我们定义了类以后,就可以根据这个类创建出实例,所以:先定义类,然后创建实例. 但是如果我们想创建出类呢?那就必须根据metaclass创建出类,所以:先定义metaclass,然后创建类. 连接起来就是:先定义metaclass,就可以创建类,最后创建实例. 所以,metaclass允许你创建类或者修改类.换句话说,你可以把类看成是met

手把手教你写一个java的orm(二)

创建映射关系 ? 想要实现一个orm的功能,我觉得就是要将class和数据库中的表创建映射关系.把class的名称和表的名称,class属性名称和表的字段名称,属性类型与表的字段类型一一对应起来.可以通过配置文件,注解等等各种方式实现这个映射关系. 需要的依赖 ? 因为编写配置文件总是一件十分繁琐的事情,所以我决定使用注解的方式来实现这个映射.在项目刚开始写的时候我用的是自定义注解的方法.自己规定一套注解,后来觉得这样没有太大的必要,因为已经有jpa里的一套注解.所以直接用就好了.所以添加依赖:

C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)

反射以及Attribute在ORM中的应用 一. 反射什么是反射?简单点吧,反射就是在运行时动态获取对象信息的方法,比如运行时知道对象有哪些属性,方法,委托等等等等.反射有什么用呢?反射不但让你在运行是获取对象的信息,还提供运行时动态调用对象方法以及动态设置.获取属性等的能力.反射在ORM中有什么用呢?我这里所讨论的ORM实现是通过自定义Attribute的方式进行映射规则的描述的.但是我们并不知道具体哪个对象需要对应哪个表,并且这些对象是独立于我们的ORM框架的,所以我们只能通过自定义Attr