orm框架

ORM之Dapper

こ雲淡風輕ζ 提交于 2019-11-29 11:22:15
一、前言 上一篇【 分层架构设计 】我们已经有了架构的轮廓,现在我们就在这个轮廓里面造轮子。项目要想开始,肯定先得确定ORM框架,目前市面上的ORM框架有很多,对于.net人员来说很容易就想到以ADO.NET为基础所发展出来的ORM框架EntityFramework。不得不说EntityFramework是一个功能很强大的ORM框架,到现在最新的EF分别是EF6(.Net Framework)和EF Core(.Net Core)两个版本。 但是这里我使用的另一个叫Dapper的ORM框架,原因是因为EF太重了,而Dapper是一个轻量级开源的ORM类,他是通过扩展IDbConnection提供一些有用的扩展方法去查询您的数据库,所以Ado.Net支持的数据库,他都可以支持。在速度方面具有“King of Micro ORM”的头衔,几乎与使用原始的ADO.NET数据读取器一样快。第一次使用了他之后,就深深的喜欢上他了。 github地址: https://github.com/StackExchange/Dapper Dapper文档: https://dapper-tutorial.net/dapper 二、Dapper实现 2.1、Dapper的方法 从Dapper文档中,我们知道,Dapper支持一下的方法: Execute :执行一次或多次命令并返回受影响的行数

Dapper-小型ORM之王(C#.NET)

久未见 提交于 2019-11-29 10:00:33
ORM: 对象关系映射器,它直接将数据库映射到C#对象。 有很多ORM框架可用,Dapper是其中之一,被称为ORM之王。 下面是Dapper主要的一些功能: 速度快,性能好; 更少的代码行 对象映射 静态对象绑定 动态对象绑定 易于处理Sql语句 易于处理存储过程 直接操作IDBConnection类,该类直接向数据库提供平滑性和运行查询,而不是像在EF和ADO.NET中那样使用各种对象传递数据。 多个查询支持 支持存储过程 批量处理数据插入 允许基于多个输入获取多个数据 为什么选择Dapper Dapper是第二快的ORM 图片参照: Dapper dotnet . 直接使用IDBConnection对象执行CRUD操作; 通过数据库提供查询静态和动态数据; 获取简单或复杂数据类型的通用结果; Dapper允许同时存储批量数据。 如何安装Dapper 在Visual Studio中,创建一个新的控制台项目,并在解决方案资源管理器中右键单击引用,选择 “管理Nuget包...”包管理器,然后搜索Dapper,并使用NuGet包管理器控制台命令“install-package Dapper”,这将在项目中安装Dapper。 Dapper如何工作 主要包含三个步骤 第一步:使用连接字符串创建一个IDBConnection对象; 第二步:编写一个查询并将其存储在一个普通的字符串变量中;

支持分表的ORM框架实现

余生颓废 提交于 2019-11-29 05:00:31
本文带大家实现一个支持分表的ORM框架,通过简单代码实现来理解核心原理 惯例贴出GitHub地址:https://github.com/whiteBX/worm 首先明确一个我们要实现的效果,然后再考虑实现,下面以user表作为例子: @Table ( "user_" ) @SplitKey ( column = "id" , tableNum = 8 ) public class UserDO { @Column ( value = "id" , columnType = JDBCType . BIGINT ) private Long id ; @Column ( value = "user_name" , columnType = JDBCType . VARCHAR ) private String userName ; @Column ( value = "real_name" , columnType = JDBCType . VARCHAR ) private String realName ; @Column ( value = "phone" , columnType = JDBCType . VARCHAR ) private String phone ; @Column ( value = "sex" , columnType = JDBCType .

Hibernate入门这一篇就够了

偶尔善良 提交于 2019-11-29 02:43:22
Hibernate入门这一篇就够了 前言 本博文主要讲解 介绍Hibernate框架,ORM的概念和Hibernate入门 ,相信你们看了就会使用Hibernate了! 什么是Hibernate框架? Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping ,在Java对象与关系数据库之间 建立某种映射,以实现直接存取Java对象 ! 为什么要使用Hibernate? 既然Hibernate是关于Java对象和关系数据库之间的联系的话,也就是 我们MVC中的数据持久层->在编写程序中的DAO层... 首先,我们来回顾一下我们在DAO层写程序的历程吧: 在DAO层操作XML,将数据封装到XML文件上,读写XML文件数据实现CRUD 在DAO层使用原生JDBC连接数据库,实现CRUD 嫌弃JDBC的Connection\Statement\ResultSet等对象太繁琐,使用对原生JDBC的封装组件-->DbUtils组件 我们来看看使用DbUtils之后,程序的代码是怎么样的: public class CategoryDAOImpl implements zhongfucheng.dao.CategoryDao{ @Override publicvoidaddCategory(Category category) {

ORM轻量级框架---ActiveAndroid

筅森魡賤 提交于 2019-11-28 09:27:30
ORM即Object-Relational Mapping,对象关系映射。简单理解就是把我们Java的对象与数据库里面的记录进行映射,可以把实体对象持久化到数据库中,也能把查询到的记录映射成Java对象。ORM让我们彻底解放,一点也不需要再去编写冗长晦涩的Sql语句,一切都是通过框架去做,不得不说是程序员的一大福音。 ORM框架实现的原理其实也很简单,就是利用Java的反射机制把对象和数据库记录映射关联起来。比如存储的时候,是把对象的属性取出来作为记录的属性值进行插入;而查询的时候则是把查询条件自动构建成一条Sql语句,把查询到的结果集转成对象列表。J2EE有ibatis,Hibernate框架,我们Android也有GreenDAO,ormlite,xUtils,AFinal等。它们的实现原理都一样,不同的也只是细节方面的处理。如果兴趣的同学,推荐阅读下ActiveAndroid的源码。Reading the fucking code! 以前写过介绍xUtils的系列文章,其中的FinalDb模块就是一个ORM框架,也是我工作中常用的。今天我们介绍的ActiveAndroid的API也是相当的简单友好,而且功能一样的强大。ActiveAndroid简洁的API给人一种用起来很舒服的感觉,今天主要是介绍下关于CRUD的简单使用。 一、初始化 有两种方式

beego框架学习(三) -orm的使用

我的未来我决定 提交于 2019-11-28 08:23:14
2 3 4 5 6 7 8 9 10 11 目前beego-orm支持的数据有: - MySQL:https: //github.com/go-sql-driver/mysql - PostgreSQL:https: //github.com/lib/pq - Sqlite3:https: //github.com/mattn/go-sqlite beego-orm的相关特性 - 支持 Go 的所有类型存储 - 轻松上手,采用简单的 CRUD 风格 - 自动 Join 关联表 - 跨数据库兼容查询 - 允许直接使用 SQL 查询/映射 - 严格完整的测试保证 ORM 的稳定与健壮    orm的使用 - 导入orm的依赖:go get github.com/astaxie/beego/orm. - 使用的步骤: 1.往orm注册默认数据库(包括数据库的连接的一些设置参数),往orm注册model。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 def. go /** *实体定义 */ type User struct { Id int `json: "id" pk: "auto" orm: "column(id)" ` Username string `json: "username" orm:

golang利用beego框架orm操作mysql

限于喜欢 提交于 2019-11-28 05:46:42
GO引入orm框架操作mysql 在beego框架中引入orm操作mysql需要进行的步骤: 第一步 :导入orm框架依赖,导入mysql数据库的驱动依赖 import ( "github.com/astaxie/beego/orm" //导入orm框架 _ "github.com/go-sql-driver/mysql" //导入数据库驱动 ) 第二步 :进行模型结构定义 //例如定义user表模型结构 type TestUser struct { Id int `orm:"pk;auto;column(user_id)"` //表示设置为主键并且自增,列名为user_id Name string `orm:"size(100)"column(user_name)` Sex int `orm:"size(2);column(gender)"` CreateDate time.Time `orm:"type(date);column(create_date)"` Age int `orm:size(10);column(age)` } //注意:以上的字段名必须大写,否则无法识别 在进行模型结构定义需要注意的是(模型结构定义也就是表字段定义,beego中的orm框架会自动给你生成模型定义对应的表): 关于表名 :默认是生成以结构名小写并且加上s结尾的表名,也可以自行设置表名

mybatis

旧城冷巷雨未停 提交于 2019-11-27 18:34:05
Mtbatis 一个持久层框架,主要是让java程序对数据库进行增删改查的工具。 我们使用原生jdbc来进行数据库操作的时候会出现大量重复的代码, 而mybatis通过构造一个mapper和启动类来消除了大量的重复代码。 当然ORM框架有很多,但是mybati的优点属于半封闭框架,在使用时比其他orm框架更加灵活,简单。 程序员都是懒的嘛。那个简单用哪个。 基本工作流程:准备sql,sql依赖,bd文件。然后配置mybatis属性文件,之后开始编写启动类,然后开始编 写mapper。xml。然后测试类。 来源: https://www.cnblogs.com/fanzhuangzhuang/p/11372359.html

所谓的持久层框架?ORM框架?以及Hibernate和Mybatis区别?

冷暖自知 提交于 2019-11-27 10:51:38
ORM框架? Object Relational Mapping,对象-关系映射。 项目中的业务实体有两种表现形式:对象和关系数据,即在内存中表现为对象,在数据库中表现为关系数据。 为什么需要ORM框架? ORM框架是对象关系映射,那为什么要映射mapping? 因为对象之间可以存在关联和继承关系,但是在数据库中,关系数据无法表达多对多关联和继承关系。(ps:在数据库原理中,会把逻辑上的多对多转换为多个一对关系才能实现)因此,对象和关系(业务实体的两种表现形式)想要映射正确,项目系统一般以中间件的形式,即持久层框架。 Hibernate? Hibernate是一个开源的对象关系映射框架。 它对jdbc进行了非常轻量级的对象封装,将pojo(普通的Java对象)与数据库表建立映射关系,是一个全自动的ORM框架,甚至自动生成SQL语句,自动执行。 因此,程序员可以随心所有地使用对象编程思维来操纵数据库。 Hibernate特点: Hibernate通过修改一个“持久化”对象的属性,从而修改数据库表中对应的记录数据 提供线程和进程两个级别的缓存提升应用程序性能 有丰富的映射方式将Java对象之间的关系(POJO)转换为数据库表之间的关系 屏蔽不同数据库实现之间的差异。在Hibernate中只需通过“方言”的形式指定当前使用的数据库,就可以根据底层数据库的实际情况生成适合的SQL语句

Dapper-小型ORM之王(C#.NET)

£可爱£侵袭症+ 提交于 2019-11-27 10:01:49
ORM: 对象关系映射器,它直接将数据库映射到C#对象。 有很多ORM框架可用,Dapper是其中之一,被称为ORM之王。 下面是Dapper主要的一些功能: 速度快,性能好; 更少的代码行 对象映射 静态对象绑定 动态对象绑定 易于处理Sql语句 易于处理存储过程 直接操作IDBConnection类,该类直接向数据库提供平滑性和运行查询,而不是像在EF和ADO.NET中那样使用各种对象传递数据。 多个查询支持 支持存储过程 批量处理数据插入 允许基于多个输入获取多个数据 为什么选择Dapper Dapper是第二快的ORM 图片参照: Dapper dotnet . 直接使用IDBConnection对象执行CRUD操作; 通过数据库提供查询静态和动态数据; 获取简单或复杂数据类型的通用结果; Dapper允许同时存储批量数据。 如何安装Dapper 在Visual Studio中,创建一个新的控制台项目,并在解决方案资源管理器中右键单击引用,选择 “管理Nuget包...”包管理器,然后搜索Dapper,并使用NuGet包管理器控制台命令“install-package Dapper”,这将在项目中安装Dapper。 Dapper如何工作 主要包含三个步骤 第一步:使用连接字符串创建一个IDBConnection对象; 第二步:编写一个查询并将其存储在一个普通的字符串变量中;