myBatis源码流程分析记录
mybatis核心组件关系图mybatis主要组件SqlSession:是mybatis提供的面向开发者的框架底层API,开发者通过获取一个是sqlSession实例来进行具体的数据库增删改查操作Executor:mybatis的执行器,用于执行sql,生成结果并进行结果缓存等操作,类似于controllerStatementHandler:对JDBC的Statement进行封装Parameter
MySQL实战 | 05 如何设计高性能的索引?
上回我们主要研究了为什么使用索引,以及索引的数据结构。今天带你了解如何设计高性能的索引。其中,有这么一个点,说的是InnoDB引擎中使用的是聚簇索引,其主索引的实现树中的叶子结点存储的是完整的数据记录,而辅助索引中存储的则只是辅助键和主键的值。这样在用辅助索引进行查询时,会先查出主键的值,然后再去主索引中根据主键的值查询目标值。比如,假想一个表如下图存储了4行数据。其中Id作为主索引,Name作为
Java源码分析:HashMap 1.8 及与HashMap1.7比较
前言今天,我将通过源码分析HashMap1.8,从而讲解HashMap1.8相对于HashMap1.7的更新内容,希望你们会喜欢。示意图.png1.简介类定义public class HashMap extends AbstractMap implements Map, Cloneable, Serializable主要简介示意图.pngHashMap的实现在JD
类的加载链接和初始化
图片很大,点击图片不知道能不能放大定义加载:将class里的静态二进制存储结构转化为内存中的的运行时数据结构,并且在方法区中生成class对象作为访问类数据的入口链接.验证:校验文件是否符合格式,类型是否正确(是否继承了final修饰的类),字节码是否正确,符号引用验证(是否能找到对应类。)链接.准备:为类变量在方法区中分配内存并分配初始值,是类变量不是实例变量。准备阶段不执行指令,初始值为0,例
Unable to lock the administration d
在Ubuntu或者它的衍生版如LinuxMint(我已经作为日常工作使用的系统)中使用apt-get命令或者其相对更新的APT管理工具时,你可能会在命令行中看到一个unabletolocktheadministrationdirectory(/var/lib/dpkg/)isanotherprocessusingit的错误。这个错误尤其对那些对这个错误原因不了解的Linux(Ubuntu)新手而言
消息中间件—RocketMQ消息存储(一)
文章摘要:MQ分布式消息队列大致流程在于消息的一发一收一存,本篇将为大家主要介绍下RocketMQ存储部分的架构消息存储是MQ消息队列中最为复杂和最为重要的一部分,所以小编也就放在RocketMQ系列篇幅中最后一部分来进行阐述和介绍。本文先从目前几种比较常用的MQ消息队列存储方式出发,为大家介绍RocketMQ选择磁盘文件存储的原因。然后,本文分别从RocketMQ的消息存储整体架构和Rocket
json字符串转java的Map<String,String&g
packagecom.iqc.app.qc.common.util;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;publicclassJsonToMap{public static Map toMap(String jsonString){ ArrayLi
数据挖掘——模型融合
模型融合介绍:模型融合通常可以在各种不同的机器学习任务中使结果获得提升。顾名思义,模型融合就是综合考虑不同模型的情况,并将它们的结果融合到一起。具体内容会从以下几个方面来讲:1、Voting2、Averaging3、Ranking4、Bagging5、Boosting6、Stacking7、Blending 一、VotingVoting即投票机制,分为软投票和硬投票两种,其原理采用少数服从多数的思
CSS3新特性(06):Flex
Flex是FlexibleBox的缩写,意为"弹性布局",Flex布局将会是未来布局的首选方案,因为非常便捷,有必要好好学习下。不过目前浏览器支持不是很好,IE11开始才支持。网上写的各种Flex的文章都说IE10也支持的,我想说,我像你保证IE10不支持的,至少不支持Flex里面的所有属性,所以既然只有IE11开始的浏览器才支持,那么它的使用就可以缓一缓再说,现在只作为概念类项目的学习之用。下面
jquery js 获取宽度和高度
js jquerywidth width() 仅内容宽度clientWidth innerWidth() 包含paddingoffsetWidth outerWidth() 包含border outerWidth(true)包含margin height hei
查询时多个文本框怎样判断
Insus.NET有看到网友在问,我们看看他的问题:网友是在想到一个问题,也在尝试解决这个问题,也许日后的文本框还在增多,如果不去解决这些判断,这些if也会越来越来,更严重的维护起来也越来越复杂。我们先看看下面的演示,Insus.NET有执行三次查询,第一次执行查询时,三句SQL语执行结果一样。第二次改变了一个第二行与第三行SQL语句的条件,再次执行时,第二句与第三句的SQL语句执行结果也一样。最
Android中 使用okhttp3上传图片数组遇到的坑
以下是自己的一个小心得 由于以前做多张图片上传到后台服务起的时候,自己前端的做法都是基本都是 使用:1,将本地获取到的照片进行base64转换之后以某个符号分隔进行拼接传到后台。2,或者使用listlist 上传整个集合。由于okhttp3 封装好的方法不支持直接上传数组对象,所以需要自己处理一下,// 可以直接使用下面方法 privatevoidpostDataWithParame(){
跟用户沟通,问题尽量分析清楚,以及解决问题
分享一下上个星期,开发与跟用户沟通历程。前提,以前旧系统,人事资料是一笔笔人手录入。现在公司在减少人手,提高效率。因此Insus.NET需要修改旧系统,实现批量导入。下面一些截图来自邮件。经用户使用之后,还有一些特殊情况是在开发时是没有想到的。当遇上下面的资料时,用户反馈:原因是有旧系统内,存储雇员工号,只能存储整型。看到用户反馈的问题,我们会想到什么,怎样回用户的邮件?下面是Insus.NET的
一起撸个简单粗暴的Tv应用主界面的网格布局控件(下)
上一篇中我们已经一起学了怎么简单粗暴的撸个支持动态布局的网格控件出来,但在上一篇的介绍中,并没有学习实现网格控件的滑动效果,所以本篇就来讲讲,要如何让我们的网格控件可以支持自定义滑动策略。效果图一是Tv应用:当贝市场的主页图二是咱自己撸的简单粗暴的Tv应用主界面网格控件:TvGridLayout的示例,每个Tab下,每一屏的卡位大小、位置都是动态计算出来的。实现第一步:定义布局数据结构第二步:自定
ASP.NET页面周期学习笔记之一
一.ASP.NET页面生命周期理解——重中之重的KeyASP.NET页面生命周期——理解:重中之重!!!1.基本概念:所谓的页面生命周期,指的是一个ASP.NET页面类对象从初始化到销毁经过的步凑过程;2.大致步凑:(1)初始化:PreInit,Init,InitComplete(2)加载数据和页面:LoadState,ProcessPostData,PreLoad,Load,ProcessPos
【web前端优化之图片延迟加载初探】中午不睡,下午崩溃
前言图片延迟加载技术其实应该被用得很多了,令人汗颜的是我居然之前一直没有用过,今天还是一个后端的大哥给提出来的,于是我便趁着中午休息的时间做了一下研究,这里提出来和大家讨论一下。PS:小生初学,各位有问题可以提出来讨论延迟加载原理延迟加载有多种实现,我选择了其中一种:为img标签src设置统一的图片链接,而将真实链接地址装在自定义属性中。所以开始时候图片是不会加载的,我们将满足条件的图片的src重
Mysql row number()排序函数的用法和注意
虽然使用不多,但是也有情况是需要在mysql里面写语句开发功能的。在sqlserver使用惯了,习惯了使用row_number()函数进行排序,但是mysql确没有这样一个函数。然后找到了po主写的一篇文章。通过变量赋值来查询的。(PS我测试的版本是mysql5.6)先建表?CREATETABLE`test`(`ID`int(11)NOTNULLAUTO_INCREMENT,`Col1`varch
GCD Global队列创建线程进行耗时操作的风险
先思考下如下几个问题:新建线程的方式有哪些?各自的优缺点是什么?dispatch_async函数分发到全局队列一定会新建线程执行任务么?如果全局队列对应的线程池如果满了,后续的派发的任务会怎么处置?有什么风险?答案大致是这样的:dispatch_async函数分发到全局队列不一定会新建线程执行任务,全局队列底层有一个的线程池,如果线程池满了,那么后续的任务会被block住,等待前面的任务执行完成,
玩转数据结构之线段树(区间树Segment Tree)
SegmentTreeST基本表示平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。创建STpublicclassSegmentTree{privateE[]tree;privateE[]data;privateMergermerger;publicSegmentTree(E[]a
github如何设置SSH Key实现无密码操作
一、密钥是什么? 密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。对称密钥加密又称私钥加密或会话密钥加密算法;非对称密钥加密系统又称公钥密钥加密。二、设置SSHKey(1) 在注册好github账号后,打开你的电脑桌面上的一个文件夹,在里面创建一个工程目录,然后按住shift键,鼠标右击这个工程文件夹里内容空白处,点击进入cmd或者(Pow