框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在发布完:框架设计:实现数据的按需更新与插入的改进 之后:

 

有网友表示不理解,于是这里给出一篇简单的说明对比,表示下改进后好处。

 

一:场景一:循环5次,同样也是重复提交的问题

 

using (MAction action = new MAction(TableNames.Blog_User))
            {
                for (int i = 0; i < 5; i++)
                {
                    action.Set(Users.ID, 18);
                    action.Set(Users.UserName, "cyq1162");
                    action.Update();
                }
                    Response.Write(action.DebugInfo);//输出调试信息
            }

 

1:旧模式生成的SQL:

说明:

我们很直观的看到它重复的更新了5次。

 

2:改进后生成的SQL:

说明:

改进后,只是更新一次,其它四次并没有操作数据库。

 

二:场景二:模块缓存场景,其实和第一场景相似

 

MDataRow userInfo=null;//模拟行数据缓存
            using (MAction action = new MAction(TableNames.Blog_User))
            {
                if (action.Fill(18))
                {
                    userInfo = action.Data;
                }
            }
            using (MAction action = new MAction(userInfo))//从缓存加载
            {
                action.Set(Users.UserName, "cyq1162");
                action.Update();
                Response.Write(action.DebugInfo);
            }

 

1:旧模式生成的SQL:

说明:

无论存不存在缓存,更新同样被触发。

 

2:改进后生成的SQL:

说明:

有缓存数据时,相同的数据更新,则不会再被更新。

 

三:结论好处

 

实质性的减少数据库操作,从数据框架底层有效的防止无效的点击事件。

转载于:https://my.oschina.net/secyaher/blog/274030

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java异常详解及如何处理

来源&#xff1a;Java异常详解及如何处理 简介 程序运行时&#xff0c;发生的不被期望的事件&#xff0c;它阻止了程序按照程序员的预期正常执行&#xff0c;这就是异常。异常发生时&#xff0c;是任程序自生自灭&#xff0c;立刻退出终止&#xff0c;还是输出错误给用户&…

TransactionScope 的基本原理简介

C# 的事务编程 1 Db事务 DbConnection 中创建基于当前连接的 DbTransaction 2 使用TransactionScope ,创建环境事务 一旦创建&#xff0c;在这个环境包含的DbConnection 实例 都会根据连接字符串中的 Sqlserver 连接字符串支持&#xff0c;是否自动附加当前环境事务. 连接字符…

Canvas 生成交互动画

2019独角兽企业重金招聘Python工程师标准>>> 今天介绍的是一个HTML5交互动画效果&#xff0c;难以置信。HTML5虽说还有很多东西在改进&#xff0c;但现在所能实现的 效果的程度我想是诸位很难想象得到的&#xff0c;实在是发展得太快了。 查看详情 转载于:https://m…

二分搜索技术

2019独角兽企业重金招聘Python工程师标准>>> 分治法的基本思想&#xff1a;将一个规模为n的问题&#xff0c;分解为k个规模较小的子问题&#xff0c;这些子问题互相独立且与原问题相同。递归的解这些子问题&#xff0c;然后将各个子问题的解合并得到原问题的解。 经…

apachacxf项目使用@WebService报错

首先去除已经导入的包那是因为我们要导入javaee的api,首先点击最下面这个选择自己电脑上的路径然后就会自动导入上面的包,同时在jar库上也会出现转载于:https://www.cnblogs.com/fengnan/p/9311949.html

Java中的属性和方法

题目 实体类 测试类 转载于:https://www.cnblogs.com/maoxiuying/p/9130361.html

2019-06-13 Java学习日记之MySql

数据库概述&#xff1a; 1、什么是数据库&#xff0c;数据库有什么作用&#xff1f; 数据库就是存储数据的仓库&#xff0c;气本质是一个文件系统&#xff0c;数据按照特定的格式将数据存储起来&#xff0c;用户可以对数据库中的数据进行增加&#xff0c;修改&#xff0c;删除及…

windows下手动安装composer

1.下载compser.phar 地址 https://getcomposer.org/download/ 2.新建composer.bat 文件&#xff0c;写入“php "%~dp0composer.phar" %*” 3.把composer.bat composer.phar 两个文件放入 4.向环境变量里面写人“;D:\phpStudy\php\php-5.4.45;D:\phpStudy\php\php-5…

java-number

通常&#xff0c;当我使用number类型的时候&#xff0c;我们可以使用原始数据类型例如byte&#xff0c;int,long,double等 int i 5000; float b 13.65; double m 0xaf; 所有包装类&#xff08;整型&#xff0c;长型&#xff0c;字节型&#xff0c;双精度型&#xff0c;浮点型&a…

MyBatis学习总结(9)——使用MyBatis Generator自动创建代码

2019独角兽企业重金招聘Python工程师标准>>> 由于MyBatis属于一种半自动的ORM框架&#xff0c;所以主要的工作就是配置Mapping映射文件&#xff0c;但是由于手写映射文件很容易出错&#xff0c;所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这…

20162317 2017-2018-1 《程序设计与数据结构》第8周学习总结

20162317 2017-2018-1 《程序设计与数据结构》第8周学习总结 教材学习内容总结 1、二叉查找树的定义、性质2、向二叉查找树中添加元素的方法3、在二叉查找树中删除元素的方法4、旋转的定义、方法、意义 教材学习中的问题和解决过程问题1&#xff1a;我在17章中看到这么一句话&a…

Java基础学习总结(22)——异常处理

2019独角兽企业重金招聘Python工程师标准>>> 一、异常的概念 异常指的是运行期出现的错误&#xff0c;也就是当程序开始执行以后执行期出现的错误。出现错误时观察错误的名字和行号最为重要。 1 package cn.javastudy.summary;2 3 public class TestEx{4 5 …

130242014045 林承晖 第2次实验

软件体系结构的第二次实验&#xff08;解释器风格与管道过滤器风格&#xff09; 一、实验目的 1&#xff0e;熟悉体系结构的风格的概念 2&#xff0e;理解和应用管道过滤器型的风格。 3、理解解释器的原理 4、理解编译器模型 二、实验环境 硬件&#xff1a; 软件&#xff1a;P…

Java基础学习总结(8)——super关键字

2019独角兽企业重金招聘Python工程师标准>>> 一、super关键字 在JAVA类中使用super来引用父类的成分&#xff0c;用this来引用当前对象&#xff0c;如果一个类从另外一个类继承&#xff0c;我们new这个子类的实例对象的时候&#xff0c;这个子类对象里面会有一个父类…

Java基础学习总结(17)——线程

2019独角兽企业重金招聘Python工程师标准>>> 一、线程的基本概念 线程理解&#xff1a;线程是一个程序里面不同的执行路径 每一个分支都叫做一个线程&#xff0c;main()叫做主分支&#xff0c;也叫主线程。 程只是一个静态的概念&#xff0c;机器上的一个.class文件…

(转)MySQL自带的性能压力测试工具mysqlslap详解

mysqlslap 是 Mysql 自带的压力测试工具&#xff0c;可以模拟出大量客户端同时操作数据库的情况&#xff0c;通过结果信息来了解数据库的性能状况 mysqlslap 的一个主要工作场景就是对数据库服务器做基准测试 例如我们拿到了一台服务器&#xff0c;准备做为数据库服务器&#x…

node.js HelloWord

创建 server.js var http require("http"); http.createServer(function(req,res){ //设置请求头的编码格式 res.writeHead(200,{Content-Type:text/html;charsetutf-8}); //设置网页的编码格式&#xff08;防止中文乱码&#xff09; res.write("<head>&…

架构师不可不知的十大可扩展架构

2019独角兽企业重金招聘Python工程师标准>>> 可扩展性正是如今软件设计领域最值得优先考虑的要素。然而&#xff0c;计算机科学家们还无法了解一套单独的架构如何才能扩展至各类应用环境当中。相反&#xff0c;我们在数量繁多的方案中所设计出的可扩展性架构&#x…

Winform开发框架中工作流模块的业务表单开发

在我们开发工作流的时候&#xff0c;往往需要设计到具体业务表单信息的编辑&#xff0c;有些是采用动态编辑的&#xff0c;有些则是在开发过程中处理的&#xff0c;各有各的优点&#xff0c;动态编辑的则方便维护各种各样的表单&#xff0c;但是数据的绑定及处理则比较麻烦&…

RabbitMQ学习总结(2)——安装、配置与监控

2019独角兽企业重金招聘Python工程师标准>>> 一、安装 1、安装Erlang 1&#xff09;系统编译环境&#xff08;这里采用linux/unix 环境&#xff09; ① 安装环境 虚拟机&#xff1a;VMware Workstation 10.0.1 build Linux系统&#xff1a;CentOS6.5 rabbitMQ官网下…