orm

Django ORM的F Q和extra操作

一个人想着一个人 提交于 2020-03-12 23:50:10
orm的F功能 假设数据库有一个员工表,表中的年龄都自加“1”,这里就需要到orm的F功能,如下面的代码: from django.db.models import F#首先要导入这个F模块 models.Uinfo.objects.all().update(age=F("age")+1)#这里的F功能后面的age,它就会让数据表表中的age这列+1 F 就是用来更新获取原来值的功能 orm的Q功能 数据库的查询条件我们可以使用filter,在filter里面的可以是两个条件他们之间是and的关系,也可以是一个字典,例如下面的代码 models.Uinfo.objects.all().filter(id=1,name='李伟') conditon={ 'id':'1', 'name':'李伟' } models.Uinfo.objects.all().filter(**conditon) 除了上面的方法,我们还可以加Q的对象,例如: from django.db.models import Q models.Uinfo.objects.all().filter(Q(id=1))#条件是id为1的时候 models.Uinfo.objects.all().filter(Q(id=1)|Q(id__gt=3))#条件是或的关系,| models.Uinfo.objects.all()

ORM

蹲街弑〆低调 提交于 2020-03-12 23:43:35
对象关系映射(Object Relational Mapping,简称ORM) 它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道。 net环境下的ORM: 1、SqlSugar:是一款轻量级的MSSQL ORM ,除了具有媲美ADO的性能外还具有和EF相似简单易用的语法,地址: http://www.cnblogs.com/sunkaixuan/p/5654695.html 2、Dapper ORM : 是一个轻型的ORM类。代码就一个SqlMapper.cs文件,主要是IDbConnection的扩展方法,官方站点http://code.google.com/p/dapper-dot-net/ ,也可以通过Nuget进行安装 3、EF6.0: .NET官方ORM 来源: https://www.cnblogs.com/MatureMan/archive/2020/03/12/12483667.html

ORM框架:Dapper (Demo下载)

拜拜、爱过 提交于 2020-03-12 11:53:51
Dapper作为轻量级ORM框架。因其优秀的性能。 整理一下Demo,方便自己和朋友查找 除了CURD之外, IN查询 联合查询 存储过程 分页查询 Demo: 链接 提取码:jwb6 数据库:两个表 两个储存过程 Student表: Book表: 数据库SQL: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Book]( [BID] [int] IDENTITY(1,1) NOT NULL, [BookName] [varchar](50) NULL, [SID] [int] NULL, CONSTRAINT [PK_Book] PRIMARY KEY CLUSTERED ( [BID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET

Django 之将 ORM 语句转化成原生sql 语句

一世执手 提交于 2020-03-12 11:39:31
使用 Django 有个很方便的东西就是它的 ORM 查询语句,但是有时候碰上一些复杂的语句,或者新用到的功能,比如 distinct, sum。 我们想要知道使用 ORM 查询返回的结果是不是正确,我们可以将之对应的 MySQL 语句打印出来印证一下。 有两种方法,如果是比较简单的查询语句,可以使用以下方法: ArticleInfo.objects.filter(id = 1).query.__str__() 如果查询涉及 count() 这种功能,上述方法貌似就不起作用了,可以使用以下方法: from django.db import connection #这里执行一段复杂的查询代码 connection.queries[-1]['sql'] #因为是紧接着查询之后查看代码,所以选择最后一条记录即可 来源: CSDN 作者: 蓝绿色~菠菜 链接: https://blog.csdn.net/bocai_xiaodaidai/article/details/104811394

数据库思想、框架总结

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-12 02:09:02
原始JDBC: 加载数据库驱动类 驱动管理工具类获取连接,写用户名,密码连接数据库; 利用java带的类,根据连接的数据库,获得一个可以输入sql语句的对象; 写sql语句; 执行语句; 如果为查询,得到一个ResultSet; 轮询ResultSet,人工组装成为你想要的类; Spring提供的JDBC模板 减少了try,catch语句; ORM ORM:对象关系映射; 核心:ORM是一个实现使用对象操作数据库的设计思想,让编程人员不编写任何SQL语句; 完整的ORM框架: 包括Object->Relation和Relation->Object两方面 Hibernate是个完整的ORM框架,而MyBatis完成的是Relation->Object JPA JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口。 Sun引入新的JPA ,ORM规范出于 两个原因: 其一,简化现有Java EE和Java SE应用开发工作; 其二,Sun希望整合ORM技术,实现天下归一。(提出ORM思想后,ORM的实现太多了,整合) ORM的出现是由于面向对象的大潮,创作者希望对数据库的操作也使用 面向对象 ,从而避免对sql的繁琐操作。 JPA包括三方面的技术: ORM 映射元数据 JPA支持 XML 和JDK5.0

MyBatis面试题(三)

China☆狼群 提交于 2020-03-11 02:21:38
说说对ORM的理解? 答:ORM就是所谓的对象关系映射,通过这门技术,可以让程序中的实体对象和数据库的记录做到互相映射,对象可以借此持久化到数据库记录,数据库记录也能借此转化为实体对象。 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里? 答:Hibernate就属于全自动ORM映射工具,因为使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而 Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自动ORM映射工具。 你对MyBatis的一级缓存和二级缓存有了解吗,说一下? 答:MyBatis默认只开启一级缓存,一级缓存是对同一个SqlSession起作用,在使用SqlSession第一次查询后,MyBatis会将结果缓存起来,如果下次再使用同一个SqlSession调用Mapper方法,sql的参数也完全相同,如果没有声明需要刷新,同时缓存也没有超时,那SqlSession都会取出当前缓存的数据,而不会再次发送SQL到数据库做查询。 MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能。SqlSessionFactory层面上的二级缓存默认是不开启的,二级缓存的开启需要进行配置,实现二级缓存的时候

Spring必备知识点(一)

你离开我真会死。 提交于 2020-03-10 23:48:38
Spring框架的7个模块 组成 Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 核心容器 : 核心容器提供 Spring框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用 控制反转 (IOC)模式将 应用程序的配置和依赖性规范 与 实际的应用程序代码 分开。 那么我们该如何理解:BeanFactory和FactoryBean 1、 BeanFactory BeanFactory定义了IOC容器的最基本形式,并提供了 IOC 容器应遵守的的最基本的接口,也就是 Spring IOC 所遵守的最底层和最基本的编程规范。在Spring代码中,BeanFactory 只是个接口,并不是 IOC 容器的具体实现,但是 Spring 容器给出了很多种实现,如 DefaultListableBeanFactory 、 XmlBeanFactory 、 ApplicationContext 等,都是附加了某种功能的实现。 2、 FactoryBean 一般情况下,Spring通过反射机制利用<bean>的class属性指定实现类实例化Bean,在某些情况下,实例化Bean过程比较复杂,如果按照传统的方式,则需要在<bean>中提供大量的配置信息。配置方式的灵活性是受限的

[Spring学习]------spring-jdbc和ORM

♀尐吖头ヾ 提交于 2020-03-10 22:10:10
文章目录 什么是JDBC,它的出现解决了什么样的问题? Spring集成JDBC ORM的出现解决了什么问题 Spring集成Mybatis 相关文章 什么是JDBC,它的出现解决了什么样的问题? 官方定义:JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成;JDBC作为一种协议的体现,在Java代码中就是一系列的接口与实现的约定。数据库驱动厂商以及应用程序开发者基于这一协议进行对接,从而解耦,从而可以相互分离的独立发展。 个人理解:jdbc做的就是连接数据库,执行sql的事情。 解决的问题:如下图所示。最开始,每个数据库厂商都自己定义了一套交互协议,这样造成的结果是:对于每一种数据库,客户端都需要一套对应的实现。而jdbc的出现使得程序员不太需要关注用的是哪种数据库,按照jdbc的提供的规范进行编程即可。 jdbc的解决方案:可以由图中看出,本质上jdbc是包裹了与各种数据库之间的实现方式,相当是一个策略器。而数据库厂商也对应的支持了jdbc标准。应用程序和数据库之间可以通过jdbc来进行交互。 Spring集成JDBC spring-jdbc集成了jdbc功能,使得spring项目可以通过jdbc与数据库进行交互。 相关代码

python自动化开发-[第十八天]-django的ORM补充与ajax,分页器

白昼怎懂夜的黑 提交于 2020-03-10 19:53:17
今日概要:   1、ORM一对多,多对多   2、正向查询,反向查询   3、聚合查询与分组查询   4、F查询和Q查询   5、ajax   6、分页器 一、ORM补充: django在终端打印sql语句设置:   LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'level':'DEBUG', }, } } <1> 添加记录方法 # create方式 #Book.objects.create(title="python",price=233) # save 方式 book_obj=Book(title="Linux",price=122) book_obj.save() 一对多添加方式: Book.objects.create(title="python",price=223,publisher_id=2) book_obj=Book(title="Linux",price=122

2,ORM组件XCode(速览)

别来无恙 提交于 2020-03-10 19:00:13
啥也不说,上图: 这是最基本的增删改查代码! 符合 X系列组件的一贯作风,不求万能,只求简单实用 ! 不支持多表查询,所以不是万能的,仅仅支持单表,所以是简单的,增删改查都得到了直接支持,完全能解决80%以上的场景,所以是实用的。 UserMember类由代码生成器生成,每张表对应一个类,每个表字段对应类属性,然后加上增删改(Insert、Update、Delete、Save=Insert/Update),还有静态的查找Find,完成了一个实体类的基本结构。各方法名称尽可能接近SQL操作名称(Find特殊,等效于Select),整体上让人更容易理解。 在实体类的基础之上,我们只需要编写业务代码即可,如上图! 上图的实体类UserMember由代码生成器生成,基本上没有做任何修改,唯一的额外工作就是在配置文件的connectionStrings段增加一个配置项: 就连这个配置项,也是.Net自身的结构,不属于XCode的配置。到此,上图代码即可运行。 至于XCode如何操作数据库,用户不需要关心,甚至不需要关心当前使用的是哪一种数据库,配置项指定的是哪种数据库,XCode就用那一种。 大石头 新生命开发团队 2010-08-20 00:36 作者: 大石头 发表于 2010-09-12 12:11 原文链接 评论: 12 查看评论 发表评论 最新新闻: ·