数据库视图

springMVC学习笔记--初识springMVC

情到浓时终转凉″ 提交于 2020-02-25 19:55:12
前一段时间由于项目的需要,接触了springMVC(这里主要是讲3.1版,以下内容也是围绕这个版本展开),发觉其MVC模式真的很强大,也简单易用,完全是基于注解实现其优雅的路径配置的。想想以前接手的项目,是用原生的servlet,一个功能块就得在web.xml上配置一个servlet信息,那个蛋疼,现在那个项目就单配置文件都快达到1万行了。当然,现在是SSH横行的年代,strust2.0也是许多企业的选择,是一个稳定、成熟的框架。但是我们选择springMVC是因为其具有几个突出的特性:1.轻量、2控制反转、3.面向切面、4.容器。这里可以参考这篇文章: http://developer.51cto.com/art/200610/33580.htm 1 springMVC简介 1.1 度娘有话 度娘说:SpringMVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText

数据库视图的使用

纵饮孤独 提交于 2020-02-25 19:16:29
1、数据库视图的概念 视图是从一个或几个基本表(或视图)中导出的虚拟的表。在系统的 数据字典 中仅存放了视图的定义,不存放视图对应的数据。 视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。 视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的 基表 。一个视图也可以从另一个视图中产生。 视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。 视图看上去非常像数据库的物理表,对它的操作同任何其它的表一样。当通过视图修改数据时,实际上是在改变基表中的数据;相反地,基表数据的改变也会自动反映在由基表产生的视图中。由于逻辑上的原因,有些视图可以修改对应的基表,而有些则不能(仅仅能查询)。 2、视图的作用 ①简化了操作,把经常使用的数据定义为视图。 我们在使用查询时,在很多时候我们要使用聚合函数,同时还要 显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能会很长,如果这个动作频繁发生的话,我们可以创建视图,这以后,我们只需要select * from view就可以啦,这样很方便。 ②安全性,用户只能查询和修改能看到的数据。 因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,我们可以将基表中重要的字段信息

Mysql事务隔离实现机制

我怕爱的太早我们不能终老 提交于 2020-02-25 19:14:13
今天我们来看看事务隔离的实现原理 事务隔离 隔离性与隔离级别 当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读 (non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有 了“隔离级别”的概念 在谈隔离级别之前,你首先要知道,你隔离得越严实,效率就会越低。因此很多时候,我们都要在二者之间寻找一个平衡点 读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到。 读提交是指,一个事务提交之后,它做的变更才会被其他事务看到。 可重复读是指,一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。 串行化,顾名思义是对于同一行记录,“写”会加“写锁”,“读”会加“读锁”。当 出现读写锁冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行 在实现上,数据库里面会创建一个视图,访问的时候以视图的逻辑结果为准。 在“可重复读”隔离级别下,这个视图是在事务启动时创建的,整个事务存在期间都用这个视图。 在“读提交”隔离级别下,这个视图是在每个 SQL 语句开始执行的时候创建的。这里需要注意的是, “读未提交”隔离级别下直接返回记录上的最新值,没有视图概念; 而“串行化”隔离级别下直接用加锁的方式来避免并行访问 事务隔离的实现

Oracle常用系统表和视图归纳

落爺英雄遲暮 提交于 2020-02-24 10:47:20
目录 常用系统表或者视图 重要字段说明 常用系统表或者视图 NAME TYPE OWNER Description DBA_OBJECTS 当前数据库里的所有对象 USER_OBJECTS VIEW 当前用户拥有的所有对象(不显示OWNER字段) ALL_OBJECTS 当前用户能够访问的所有对象,注意object_type 和 owner字段 DBA_TABLES 当前数据库里所有的关系表 ALL_TABLES 当前用户可访问的关系表 USER_TABLES 当前用户拥有的关系表 ALL_TAB_COLUMNS 系统视图,存放表信息(数据库名 表名,表字段名,字段类型,字段长度,默认值等) DBA_TABLESPACES 数据库中的所有表空间 USER_TABLESPACES 当前用户可访问的表空间 ALL_SOURCE VIEW SYS 记录了该用户可访问的所有数据库对象的脚本信息(DDL) 重要字段说明 名字 字段 说明 ALL_SOURCE TYPE 对象类型,如FUNCTION, JAVA SOURCE, PACKAGE, PACKAGE BODY, PROCEDURE, TRIGGER, TYPE, TYPE BODY等 来源: CSDN 作者: Trust-The-Process 链接: https://blog.csdn.net/weixin_44728363

drf序列化高级、自定义只读只写、序列化覆盖字段、二次封装Response、数据库查询优化(断关联)、十大接口、视图家族、自动补全图片链接

混江龙づ霸主 提交于 2020-02-24 09:40:35
目录 自定义只读 自定义只写 序列化覆盖字段 二次封装Response 数据库关系分析 断外键关联关系 ORM操作外键关系 ORM四种关联关系 基表 序列化类其他配置(了解) 十大接口 BaseSerializer初始化方法 十大接口序列化总结 单查群查 单增群增 单删群删 单整体改/群整体改 单局部改/群局部改 群增群改配置 十大接口小结 字段提供就校验,不提供拉到 DjangoORM内置优化机制:一次最多查21条数据 models.py response.py serializers.py urls.py 视图家族 视图基类 APIView、GenericAPIView 基于GenericAPIView的十大接口 视图工具类:mixins包 工具视图类 generics工具包:继承指定类 工具 基于generics包下工具视图类的六大基础接口 视图集(开发常用,最高级) 路由组件(繁琐,可以自定义映射关系) 路由组件(简化) 视图组件 views.py 重写删除方法:destroy 群删接口 视图级使用总结 自定义路由组件(了解) 上传文件接口 图片自动补全后台图片链接 自定义只读 自定义只读:Model类中 @property def 字段(self): return "字段值" models.py class Book(BaseModel): name = models

究竟是什么在影响我们的性能

三世轮回 提交于 2020-02-23 15:14:31
前言 注:这里讨论的场景在于MIS,OA一类的系统 大部分同学在看到这个问题的时候,第一反应是糟糕的SQL语句,没有加索引,这甚至已经成为一种惯性思维。 当发现性能出问题的时候,一般都会想到加个索引,或者改造下连接方式,去掉“not exists”诸如此类,但效果往往不太理想,或过一段时间后,效果又不理想了,此时,一般大家都会觉得问题在于自己还不是大神。 正文 今天给大家分享的就是:为了提高性能,不是大神的我们还有多少方法可以采取? 性能有三大杀手:1)糟糕的SQL使用;2)糟糕的数据结构;3)糟糕的业务模型 下面举一个实际的例子,在EPO物资采购系统中的需求跟踪功能中,可以查询到所有历史提交的需求申请单。查询包含从需求申请->需求受理->订单->验收入库->通知领用->发放完成所有环节的状态。最初的做法是通过join将需求表、需求受理表、订单表、验收表、领用通知表和发放表连接起来形成一张视图。当数据量小的时候,看起来一切都是那么的完美,但是后来就不那么美好了。于是,后来我们采取了一系列的优化。 阶段一:物化视图 当join的时候,问题出现在join的计算过程,数据量大了,计算耗费就会大,性能便会下降。不过,当问题来的那天,对于这种问题,大家是非常坦然的面对,做一张物化视图就可以了,每天晚上计算一下,第二天查询物化视图即可。利用原生的SQL功能,物化视图,对于大家来说手到擒来

视图家族 & 路由组件

给你一囗甜甜゛ 提交于 2020-02-23 12:19:39
目录 视图家族 & 路由组件 视图集与路由组件 基于 GenericAPIView 的十大接口 基于 generics 包下工具视图类的六大基础接口 视图集 路由组件:必须配合视图集使用 自定义路由组件(了解) 上传图片接口 权限 做项目是否要分表管理前后台用户 权限六表 三大认证规则 视图家族 & 路由组件 视图基类:APIView、GenericAPIView 视图工具类:mixins包下的五个类(六个方法) 工具视图类:generics包下的所有GenericAPIView的子类 视图集:viewsets包下的类 GenericAPIView基类(基本不会单独使用,了解即可,但是是高级视图类的依赖基础) 1)GenericAPIView继承APIView,所有APIView子类写法在继承GenericAPIView时可以保持一致 2)GenericAPIView给我们提供了三个属性 queryset、serializer_class、lookup_field 3)GenericAPIView给我们提供了三个方法 get_queryset、get_serializer、get_obj mixins包存放了视图工具类(不能单独使用,必须配合GenericAPIView使用) ​``` CreateModelMixin:单增工具类 create方法 ListModelMixin

MySQL基础(4) | 视图

我只是一个虾纸丫 提交于 2020-02-23 12:07:46
MySQL基础(4) | 视图 基本语法 1.创建 CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下。 <视图名> :指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。 <SELECT语句> :指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。 对于创建视图中的 SELECT 语句的指定存在以下限制: 用户除了拥有 CREATE VIEW 权限外,还具有操作中涉及的基础表和其他视图的相关权限。 SELECT 语句 不能引用系统或用户变量 。 SELECT 语句 不能包含 FROM 子句中的子查询 。 视图定义中 不能引用 TEMPORARY 表(临时表) ,不能创建 TEMPORARY 视图。 SELECT 语句 不能引用预处理语句参数 。 修改 ALTER VIEW <视图名> AS <SELECT语句> 删除 DROP VIEW <视图名1> [ , <视图名2> …] 示例: #创建数据表 create table mygoods( g_id int AUTO_INCREMENT primary key, g_name varchar(20), g_price double, g_count int )engine=innodb default CHARSET=utf8; create table

数据库实验报告

人走茶凉 提交于 2020-02-22 22:25:05
实验一:数据定义/数据操纵语言 [ 实验日期 ] 年 月 日 [ 实验目的 ] 通过实验熟悉ORACLE上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。 [ 实验内容 ] (1)(建立数据库表) 建立教学数据库的四个数据库表,并按要求创建完整性约束。 –1.学生情况表 CREATE TABLE Student (SNO CHAR(5) PRIMARY KEY, SNAME VARCHAR2(12) NOT NULL, SDEPT CHAR(2) NOT NULL, SCLASS CHAR(2) NOT NULL, SSEX CHAR(3), SAGE NUMBER(2) ); INSERT INTO STUDENT VALUES('96001','马小燕','CS','01','女',21); INSERT INTO STUDENT VALUES('96002','黎明','CS','01','男',18); INSERT INTO STUDENT VALUES('96003','刘东明','MA','01','男',18); INSERT INTO STUDENT VALUES('96004','赵志勇','IS','02','男',20); INSERT INTO STUDENT VALUES('97001

MVC 项目中为什么会有两个web.config

妖精的绣舞 提交于 2020-02-21 05:44:27
我们对MVC 并不陌生, 在创建MVC项目时,总会发现,在工程目录 中有两个 web.config 文件,一个是在工程的根目录下,一是在 views 下,两个web.config 中的内容也不尽相同,那么为什么会有两个 web.config 文件,这就是这篇随笔将要说明的。 根目录下的 web.config 文件    根目录下的web.config 文件是对根目录下的所有文件起作用 ,在打开根目录下的 web.config 文件时,你会发现web.config 为所有的路径或动作注册了  HttpNotFoundHandler, 1 <add path= "*" verb= "*" type= "System.Web.HttpNotFoundHandler" />    或者在 IIS7中,它可能是这么定义的 1 2 <add name= "BlockViewHandler" path= "*.aspx" verb= "*" preCondition= "integratedMode" type= "System.Web.HttpNotFoundHandler" />    另外,你还可以添加自定义出错页面,或一些配置信息,如数据库的连接,键-值对等,工程中的一些配置就是从根目录下的 web.config 中读取的。一些必要的程序集也是在根目录下注册的,当运行项目时,mvc