• 当你还在纠结于ORM的性能时,我已经远远的把你抛在脑后

    时间:2023-12-22 20:32:38

    最近找工作面试,问到一些过去的工作和项目经验。我把公司用到的ORM框架(LLBL Gen)拿出来谈一谈,说一下他的优势,对方却一直追问ORM的好处,性能方面的问题,让我有时候都不知道如何回答,产生了不小的压力。坦白来说,自学生时代(2004)就对NHibernate的大名敬仰已久,也完整的学习过它的...

  • 轻量级ORM框架Dapper应用三:使用Dapper实现In操作

    时间:2023-12-16 17:39:41

    IN 操作符允许我们在 WHERE 子句中规定多个值。本篇文章中,还是使用和上篇文章中同样的实体类和数据库,Dapper使用in操作符的代码如下: using System; using System.Collections.Generic; using System.Linq; using Sys...

  • ORM常用操作

    时间:2023-12-15 20:35:32

    一般操作专业官网文档必会13条查询<> all(): 查询所有结果<> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象<> get(**kwargs): 返回与所给筛选条件相匹配的对...

  • Eloquent ORM 学习笔记

    时间:2023-12-15 09:50:31

    最近在学习Laravel,觉得ORM功能很强大,我这里只是简单探索了一点,如果有更好的笔记,还请分享。因为重点在于Eloquent ORM,所以路由设置,控制器就不详细描述了,这里直接进入Models么模块。1.数据库准备(Mysql)在这里需要创建users和users_ext两张表,并初始化数据...

  • 使用sqlalchemy用orm方式写pipeline将scrapy item快速存入 MySQL

    时间:2023-12-14 12:37:03

    传统的使用scrapy爬下来的数据存入mysql,用的是在pipeline里用pymysql存入数据库,这种方法需要写sql语句,如果item字段数量非常多的 情况下,编写起来会造成很大的麻烦.我使用的python 库:sqlalchemy来编写,用orm的方式,使代码变得非常简洁,按照数据库表的字...

  • java反射生成ORM

    时间:2023-12-12 12:57:59

    package com.wzh.jdbc;import java.lang.reflect.Field;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java...

  • Python_Day12_python mysql and ORM and redis

    时间:2023-12-11 23:25:43

    本节内容数据库介绍mysql 数据库安装使用mysql管理mysql 数据类型常用mysql命令事务 创建数据库外键增删改查表权限事务索引python 操作mysql1. 数据库介绍什么是数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的AP...

  • 【手撸一个ORM】第五步、Expression(表达式目录树)转换为Where子句

    时间:2023-12-06 11:09:32

    说明在SQL中,查询、修改比较常用到WHERE子句,在这里根据使用场景不同,定义了两个类,一个用于查询,一个用于修改(插入)操作。原因是:查询操作支持一级导航属性查询,如student.School.Name="xxx",在这里使用LEFT JOIN 的方式实现,所以拼接的时候需要考虑子表别名(两个...

  • 【手撸一个ORM】第八步、查询工具类

    时间:2023-12-06 11:09:57

    一、实体查询using MyOrm.Commons;using MyOrm.DbParameters;using MyOrm.Expressions;using MyOrm.Mappers;using MyOrm.Reflections;using MyOrm.SqlBuilder;using Sy...

  • 【手撸一个ORM】第十步、数据操作工具类 MyDb

    时间:2023-12-06 11:03:53

    说明其实就是数据库操作的一些封装,很久不用SqlCommand操作数据库了,看了点园子里的文章就直接上手写了,功能上没问题,但写法上是否完美高效无法保证,建议有需要的朋友自己重写,当然如果能把最佳实践方式告知一下,不胜感激!!因为文件比较大,所以将此类分成了四部分。MyDb主体using MyOrm...

  • 【手撸一个ORM】第二步、封装实体描述和实体属性描述

    时间:2023-12-06 10:58:59

    一、实体属性描述 [MyProperty.cs]Name,属性名称PropertyInfo,反射获取的属性信息,后面很多地方需要通过该属性获取对应的实体类型,或调用SetValue进行赋值FieldName,对应的数据表列名IsKey,是否主键IsMap,查询时是否映射该属性,若属性非值类型或str...

  • 【手撸一个ORM】第三步、SQL语句构造器和SqlParameter封装

    时间:2023-12-06 10:55:24

    既然是数据库工具,自然少不了增删改查的sql语句,在这里将这些常用SQL拼接操作集成到 [SqlServerBuilder.cs] 当中,方便后面调用。近几年在项目中一直使用Dapper操作数据库,感觉其实现的DynamicParameters特别炫,所以尝试封装了一个类似的方法  [MyDbPar...

  • 【手撸一个ORM】第一步、实体约定和描述

    时间:2023-12-06 10:54:35

    一、约定数据实体必须实现 IEntity 接口,该接口定义了一个int类型的Id属性,既每个实体必须有一个名称为Id的自增主键。若数据表的主键列名称不是Id,可以通过 [MyKey("主键列名")] 对该属性进行描述namespace MyOrm.Commons{ public interfa...

  • 【手撸一个ORM】第四步、Expression(表达式目录树)扩展

    时间:2023-12-06 10:51:31

    到这里,Orm的基架已经搭起来了,接下来就是激动人心的部分,表达式目录树转Sql语句,SqlDataReader转数据实体等等,但是在这之前,我们需要扩展下表达式目录树的方法,以方便后面的相关操作。表达式目录树解析时需要的扩展方法表达式操作符转SQL操作符,这个没什么好说的,根据表达式类型获取相应的...

  • 【手撸一个ORM】第六步、对象表达式解析和Select表达式解析

    时间:2023-12-06 10:50:15

    说明一个Orm自然不仅仅包含条件表达式,还会有如下的场景:OrderBy(s => s.StudentName)Select<StudentDto>(s => new StudentDto { s.Id, s.Name, SchoolName = s.School.Name}...

  • 【手撸一个ORM】第七步、SqlDataReader转实体

    时间:2023-12-06 10:36:57

    说明使用Expression(表达式目录树)转Entity的文章在园子里有很多,思路也大致也一样,我在前面有篇文章对解决思路有些说明,有兴趣的小伙伴可以看下 (传送门),刚接触表达式目录树时写的,不太严谨,但思路上应该不会有误导群众的嫌疑,具体实现代码还是以本篇的为准。关于缓存和缺陷实体查询,如:d...

  • django总结 --》内容(django建project开始的大致流程、ORM简介)

    时间:2023-12-02 09:49:56

    1 安装:pip  install django==1.11.9另外:在pycharm中安装 django,在下图中七步走2. 新建Django项目 django-admin startproject 项目名3. Django 设置 settings.py文件中1. 注释掉 csrf相关的那一行(大...

  • 用lambda构建ORM查询语句

    时间:2023-12-01 15:16:08

    本文介绍如何解析lambda表达式来获取一个满足条件的查询语句。先看个截图 通过设置实体对象Article_Content的查询表达式,就可以获取对应的参数化SQL语句,使用起来很方便,减少了代码的书写,同时提高了安全性。本文需要了解的基础知识有:lambda表达式Expression表达式树扩展方...

  • JFinal ORM和Hibernate简要对比

    时间:2023-12-01 11:24:20

    1.JFinal采用ActiveRecord实现数据库操作支持,较Hibernate开发效率提升六到十倍。2.JFinal ActiveRecord较Hibernate学习成本低,一小时内能上手开发。3.JFinal零配置,对数据库支持五个无特点:无xml、无annotation、无getter、无...

  • C# 通过反射初探ORM框架的实现原理

    时间:2023-11-30 18:20:51

    背景:以前学的Java进行开发,多用到Mybatis,Hiberante等ORM框架,最近需要上手一个C#的项目,由于不是特别难,也不想再去学习C#的ORM框架,所以就想着用反射简单的实现一下ORM框架的内容,简单的增删改查,没有用到多表之间的联系。反射:Java和C#中的反射大体相同,主要是指程序...