• 使用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#中的反射大体相同,主要是指程序...

  • SQLAlchemy-对象关系教程ORM-create

    时间:2023-11-30 08:33:07

    ORM是建立在SQL语言构造器之上的工具集,用于将Python对象映射到数据库的行,提供了一系列接口用于从数据库中存取对象(行)。在ORM 工作时,在底层调用SQL语言构造器的API,这些通用的操作有些许的不同。不同的是,你不再使用行,而是使用自定义类的对象来操作。另外,数据库的查询 方式也不同,O...

  • Python 12 - Mysql & ORM

    时间:2023-11-29 10:09:32

    本节内容1.数据库介绍2.mysql数据库安装使用3.mysql数据库基础4.mysql命令5.事务6.索引7.Python操作mysql8.ORM sqlalchemy了解数据库介绍什么是数据库?(介于本人还是属于熟悉数据库的,这一块就基本复制粘贴了)数据库(Database)是按照数据结构来组织...

  • 一个简单的ORM制作(SQL帮助类)

    时间:2023-11-28 16:56:43

    一个简单的ORM制作大概需要以下几个类:SQL执行类CURD操作类其他酱油类先从SQL执行类说起,可能会涉及数据库的迁移等问题,所以需要定义一个接口以方便迁移到其他数据库,事务没提供命名,若需要命名可修改为可变参数,IHelper代码如下:internal interface IHelper:IDi...

  • Django--ORM基本操作

    时间:2023-11-27 22:54:24

    一、字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 primary_key=True 注:当model中如果...