blog

Mybaits 源码解析 (九)----- 全网最详细,没有之一:一级缓存和二级缓存源码分析

无人久伴 提交于 2019-12-04 01:20:37
像Mybatis、Hibernate这样的ORM框架,封装了JDBC的大部分操作,极大的简化了我们对 数据库 的操作。 在实际项目中,我们发现在一个事务中查询同样的语句两次的时候,第二次没有进行数据库查询,直接返回了结果,实际这种情况我们就可以称为缓存。 Mybatis的缓存级别 一级缓存 MyBatis的一级查询缓存(也叫作本地缓存)是基于org.apache.ibatis.cache.impl.PerpetualCache 类的 HashMap本地缓存,其作用域是SqlSession,myBatis 默认一级查询缓存是开启状态,且不能关闭。 在同一个SqlSession中两次执行相同的 sql查询语句,第一次执行完毕后,会将查询结果写入到缓存中,第二次会从缓存中直接获取数据,而不再到数据库中进行查询,这样就减少了数据库的访问,从而提高查询效率。 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,PerpetualCache 对象是在SqlSession中的Executor的localcache属性当中存放,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。 二级缓存 二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存储,不同在于其存储作用域为

Mybaits 源码解析 (九)----- 全网最详细,没有之一:一级缓存和二级缓存源码分析

北城以北 提交于 2019-12-04 00:16:27
像Mybatis、Hibernate这样的ORM框架,封装了JDBC的大部分操作,极大的简化了我们对数据库的操作。 在实际项目中,我们发现在一个事务中查询同样的语句两次的时候,第二次没有进行数据库查询,直接返回了结果,实际这种情况我们就可以称为缓存。 Mybatis的缓存级别 一级缓存 MyBatis的一级查询缓存(也叫作本地缓存)是基于org.apache.ibatis.cache.impl.PerpetualCache 类的 HashMap本地缓存,其作用域是SqlSession,myBatis 默认一级查询缓存是开启状态,且不能关闭。 在同一个SqlSession中两次执行相同的 sql查询语句,第一次执行完毕后,会将查询结果写入到缓存中,第二次会从缓存中直接获取数据,而不再到数据库中进行查询,这样就减少了数据库的访问,从而提高查询效率。 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,PerpetualCache 对象是在SqlSession中的Executor的localcache属性当中存放,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。 二级缓存 二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存储,不同在于其存储作用域为

Python—diango

邮差的信 提交于 2019-12-03 23:54:09
django项目结构 使用命令python startproject mysite创建项目,然后进入mysite文件夹python manager.py startapp blog创建自己的应用,就是下面的目录结构了,然后创建static 目录来存放静态文件,创建templates来存放模板文件。 “mysite/ |——blog | |——admin.py | |——apps,py | |——_intit_.py | |——migrations | |——models,py | |——_pycache_ | |——tests,py | |——urls.py 来源: https://www.cnblogs.com/a1b2c3d4/p/11812018.html

PHPNamespace命名空间

有些话、适合烂在心里 提交于 2019-12-03 23:12:56
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。 例:项目中有两个模块:article和message board,它们各自有一个处理用户留言的类Comment。之后我可能想要增加对所有用户留言的一些信息统计功能,比如说我想得到所有留言的数量。这时候调用它们Comment提供的方法是很好的做法,但是同时引入各自的Comment类显然是不行的,代码会出错,在另一个地方重写任何一个Comment也会降低维护性。那这时只能重构类名,我约定了一个命名规则,在类名前面加上模块名,像这样:Article_Comment、MessageBoard_Comment 可以看到,名字变得很长,那意味着以后使用Comment的时候会写上更多的代码(至少字符多了)。并且,以后如果要对各个模块增加更多的一些整合功能,或者是互相调用,发生重名的时候就需要重构名字。当然在项目开始的时候就注意到这个问题,并规定命名规则就能很好的避免这个问题。另一个解决方法可以考虑使用命名空间。 注明: 本文提到的常量:PHP5.3开始const关键字可以用在类的外部。const和define都是用来声明常量的(它们的区别不详述),但是在命名空间里,define的作用是全局的

HTACCESS 伪静态书写规则

与世无争的帅哥 提交于 2019-12-03 22:35:23
.htaccess是什么 .htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。 概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。 启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。 笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。 工作原理 .htaccess文件(或者

.htaccess 详解

大城市里の小女人 提交于 2019-12-03 22:35:04
.htaccess是什么 .htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。 概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。 启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。 笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。 工作原理 .htaccess文件(或者

w10环境下Hexo博客搭建

。_饼干妹妹 提交于 2019-12-03 21:13:11
w10使用hexo+github手把手搭建自己的第一个博客 对一个程序员来说,博客的重要性不言而喻,不但可以积累知识,还可以更好的给别人分享自己的心得。今天就以时下比较流行的hexo博客搭建属于自己的博客。hexo是基于nodejs写的一款流行的博客框架。是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章。方便易学。 一准备 下载node.js 1.去nodejs.org下载。 下载之后直接安装 2.验证Nodejs是否安装 PS C:\WINDOWS\system32> node -v v10.16.3 PS C:\WINDOWS\system32> 显示这一步就证明安装nodejs安装成功 安装淘宝镜像 在终端输入以下命令(还是管理员的权限) PS C:\WINDOWS\system32> npm install -g cnpm --registry= https://registry.npm.taobao.org 安装镜像的目的就是为了下载hexo的客户端更快。 二 使用cnpm安装hexo的镜像 1.使用以下命令: PS C:\WINDOWS\system32> cnpm install -g hexo-cli 显示hexo安装成功 2.验证hexo是否安装成功: 3.使用cnpm安装hexo时,可能出现以下错误 解决方案:

移动端点击复制当前url(兼容iOS,安卓)

落花浮王杯 提交于 2019-12-03 20:26:10
2019独角兽企业重金招聘Python工程师标准>>> 方法一:document.execCommand("Copy"); H5操作html数据(缺点不支持iOS) 方法二:clipboard.js 是一个不需要flash,将文本复制到剪贴板的插件(兼容性好,支持PC,iOS,Android) 转载于:https://my.oschina.net/u/3104120/blog/1603422 来源: CSDN 作者: weixin_33815613 链接: https://blog.csdn.net/weixin_33815613/article/details/92375766

Spring Data JPA: 为单个Repository添加自定义方法

社会主义新天地 提交于 2019-12-03 19:53:46
Spring Data JPA: 为单个Repository添加自定义方法 我们在 Spring Data JPA: 为所有Repository添加自定义方法 中学习了通过JpaRepositoryFactory来为所有Repository添加一个公共的方法以及实现。但在很多情况下,我们需要为某个单独的Repository添加一个自定义的方法,并使其拥有一个自定义的实现。我们现在就来学习一下如何为某个单独的Repository添加自定义方法 定义Entry以及Repository 我们继续沿用之前Blog的例子,只需要一个基本的Entry对象以及Repositor即可: @Entity public class Blog { @Id @ GeneratedValue (strategy = GenerationType.AUTO) private Integer id; private String title; @Lob @ Basic (fetch = FetchType.LAZY) @ Column (length = 1024 * 1024 ) private String content; ... ... } 自定义Repository接口 首先我们依然需要添加一个自定义的接口,该接口定义了我们自定义的方法,这里我们自定义一个searchTitle方法

[thinkphp] 启用__PUBLIC__

。_饼干妹妹 提交于 2019-12-03 17:07:34
哦,,,我真是受够了,,, 为了解决__PUBLIC__不能用的问题 我折腾了好几天了,然后终于被我找到了原因 解决过程 · 首先必须贴出来帮助我的人 https://my.oschina.net/u/1263000/blog/3012575/print 所以说 实际上 tp5启动 视图字符串替换 的正确方法是 -在模块文件夹demo下面新建config.php 把上面代码写入,前端可以解析输出ROOT。 <?php return [ 'view_replace_str' => [ '__PUBLIC__'=> '/img/public' ], ]; 然后删除缓存 (网上找到的方法就是 删除掉template.php里面的缓存检查判断 但是我觉得这个只是个偏方) -接着应该就好了,但是我实际再操作的时候并没有好,在我百度完了所有的帖子之后 我发现我html文件里面的__PUBLIC__写成了__public__ 我特么想打死自己 来源: https://www.cnblogs.com/cjdty/p/11804126.html