数据库
Chase888
这个作者很懒,什么都没留下…
展开
-
数据库连接池理解
1 数据库连接池中的连接,本质是一种对象,创建连接池,可以减少对象初始化、创建的时间,这个和线程池有点类似。都是为了节省创建时间,资源复用。2 和连接池一样,数据库连接池创建的一般也有最大,最小值,即最大连接数量(连接池能申请的最大数量,超过了最大数量后,后续申请将加入到队列中等待)和最小链接数量(连接池初始化时候的数量,并且一直会保持这个最小的数。直到申请大于这个数量)。3 连接池框架:原创 2016-12-25 13:16:03 · 1323 阅读 · 0 评论 -
Spring配置Mybatis后,一级缓存失效的原因
原因:()转自http://blog.csdn.net/jield/article/details/50163327)1.mybatis的一级缓存生效的范围是sqlsession,是为了在sqlsession没有关闭时,业务需要重复查询相同数据使用的。一旦sqlsession关闭,则由这个sqlsession缓存的数据将会被清空。2.spring对mybatis的sqlsessio转载 2017-01-22 10:15:03 · 2240 阅读 · 0 评论 -
mybatis使用注解编写crud后,不配置mapping方法。
mybatis使用注解编写crud后,参考http://blog.csdn.net/a352193394/article/details/39940259。问题背景:编写如下方法public interface UserMapper { @Insert("insert into users(name, age) values(#{name}, #{age})") p原创 2017-05-12 18:09:13 · 461 阅读 · 0 评论 -
mybatis 拦截器Interceptor 笔记
笔记:假设拦截器配置拦截Executor.update方法。初始化的时候通过Plugin中动态代理重新封装了新的Executor 类,调用的Executor.update 就会就会调用拦截器的方法。参考:http://www.voidcn.com/blog/yhjyumi/article/p-4419488.html 给出了mybatis的拦截器的原理图原创 2017-05-19 17:23:02 · 1186 阅读 · 0 评论 -
<SQL必知必会>读书笔记
查询慎用“*”检索所有列:一般而言,除非你确实需要表中的每一列,否则最好别使用*通配符。虽然使用通配符能让你自己省事,不用明确列出所需列,但检索不需 要的列通常会降低检索和应用程序的性能。使用通配符有一个大优点。由于不明确指定列名(因为星号检索每一列),所以能检索出名字未知的列。 2. 关于Distinct不能部分使用DISTINCT DISTINCT关键字作用于所有的列,不仅仅是跟在其后的原创 2017-11-01 21:12:40 · 626 阅读 · 2 评论 -
MySQL索引背后的数据结构及算法原理
转载摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容转载 2018-02-06 10:16:30 · 259 阅读 · 0 评论 -
Mybatis源码解析(一)-入门Demo
实验代码public class MyApp { private static SqlSessionFactory sqlsessionfactory;//存储SqlSessionFactory 对象 static { //设置配置路径,mybitis是以SqlMapConfig.xml为主路径。因为SqlMapConfig中的mapper关联了user....原创 2018-04-07 23:06:42 · 375 阅读 · 0 评论 -
Mybatis源码解析(二) - sql执行总体流程
执行流程Configuration.xml:该配置文件是MyBatis的全局配置文件,在这个文件中可以配置诸多项目,但是一般项目中,并不会配置太多内容,常用的内容是别名设置,拦截器设置等,至于环境设置与Mapper映射文件的注册会转移到Spring配置文件中(SSM整合之后),而其余大部分的配置项都采用默认的配置。XMLConfigBuilder:该类是XML配置构建者类,是用来通过X...原创 2018-04-07 23:08:06 · 317 阅读 · 0 评论 -
Mybatis之 ${}和#{}区别及动态传入表名
动态传入表名#和$区别{}#能防止sql注入,$不能$方式一般用于传入数据库对象,例如传入表名.MyBatis排序时使用order by 动态参数时需要注意,用$而不是#传入值是引用,而$是其本身:id = 1, select #{id} from tablename -> select 1 from tablename(引用) id = 1, selec...原创 2018-05-31 23:27:26 · 3298 阅读 · 1 评论 -
myabtis源码解析三-解析配置文件类XMLConfigBuilder
介绍该类是XML配置构建者类,是用来通过XML配置文件来构建Configuration对象实例,构建的过程就是解析Configuration.xml配置文件的过程,期间会将从配置文件中获取到的指定标签的值逐个添加到之前创建好的默认Configuration对象实例中。在SqlSessionFactoryBuilder中调用XMLConfigBuilderpublic SqlSess...原创 2018-07-01 18:03:39 · 549 阅读 · 0 评论 -
Mybatis-源码解析四-创建sesstion工厂DefaultSqlSessionFactory
SqlSeetionFactory 简介该接口是会话工厂,是用来生产会话的工厂接口,DefaultSqlSessionFactory是其实现类,是真正生产会话的工厂类,这个类的实例的生命周期是全局的,它只会在首次调用时生成一个实例(单例模式),就一直存在直到服务器关闭。默认实现SqlSeetionFactory只是接口,具体实现在SqlSessionFactoryBuilder中可...原创 2018-07-01 18:04:57 · 707 阅读 · 0 评论 -
Mybatis-源码解析五 创建sqlSession对话
简介mybatis的会话,是项目与数据库之间的会话,类似于客户端与服务器之间的会话(session),这个SqlSession的生命周期是方法级的,因为他是非线程安全的,针对每一次数据库访问都要创建一个SqlSession,获取到返回结果之后,这个SqlSession就会被废弃。这区别于SqlSessionFactory的生命周期。每个SqlSession新建之后必须释放,不然会造成数据库...原创 2018-07-01 18:06:53 · 344 阅读 · 0 评论 -
memcached基础-安装和基本是应用
1 下载地址http://pan.baidu.com/s/1gdKbp8R2 解压之后,进入目录,运行: memcached.exe -d install测试安装成功:在安装目录输入命令:memcached -h,若安装成功,会出现如下界面: 同时在任务管理器中:3 启动命令: memcached.exe -d start原创 2017-01-21 13:05:11 · 237 阅读 · 0 评论 -
Redis进阶8之-集群
1 需要集群的原因:结构上:单点故障。容量上:容量瓶颈。2 复制:2.1 概念:当有一个redis更新数据后,自动将数据同步到其他数据库。2.2 配置:分为主从两种。主数据库可以读写,从数据库一般是只读。一个主数据库可以有多个从数据库,一个从数据库只能有一个注数据库。主数据库无需配置从数据库,从数据库需要在配置文件中配置主数据库:slav原创 2017-01-19 23:15:12 · 269 阅读 · 0 评论 -
数据库连接池常用参数名称解释
1 最小连接数是数据库一直保持的数据库连接数,所以如果应用程序对数据库连接的使用量不大,将有大量的数据库资源被浪费。2 最大连接数 是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求被加入到等待队列中3 初始化连接数连接池启动时创建的初始化数据库连接数量3 最大等待时间 当没有可用连接时,连接池等待连接被归还的最大时间,超过时原创 2016-12-25 13:28:55 · 1838 阅读 · 0 评论 -
Proxool几个关键类
1 ProxoolDriver数据库驱动,继承了sql的Driver。1.1 有获得Connection的入口: public Connection connect(String url, Properties info)2 ConnectionPoolDefinition和ConnectionPoolDefinitionIF2。1 设置默认的最大连接数等。原创 2016-12-25 15:46:58 · 411 阅读 · 0 评论 -
redis和memcache区别
1 、存储方式: memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小 redis有部份存在硬盘上,这样能保证数据的持久性,支持数据的持久化(笔者注:有快照和AOF日志两种持久化方式,在实际应用的时候,要特别注意配置文件快照参数,要不就很有可能服务器频繁满载做dump)。2、数据支持类型: redis在数据支持上要比memecache多的原创 2017-01-10 22:53:33 · 372 阅读 · 0 评论 -
redis五种数据类型及常用命令-笔记
五种数据类型及相关命令 字符串散列列表集合有序集合 设置/新增set keyHSET key field valueLPUSH key valueRLPUSH key valueSADD key memberZADD key score member 查询getHGET key fieldH原创 2017-01-10 22:57:30 · 442 阅读 · 0 评论 -
Redis教程之基础-五种数据基本操作
若要修改测试环境的redis数据,首先获得类型(五中类型字符串、散列、列表、集合、有序集合),一、通用类型即对key的操作1 获得键值的数据类型。返回none表示输入的键不存在,string表示字符串,hash 散列类型,list列表,set集合类型,zset(有序集合类型)type 键名比如:type name2 获得所有的keyskeys *比如:red原创 2017-01-15 22:46:54 · 408 阅读 · 0 评论 -
redis进阶2-事务管理
事务使用场景:设置某个key之后,再设置key的过期时间。这是两个操作。解决方法1 使用multi+exec。redis> MULTI # 标记事务开始OKredis> INCR user_id # 多条命令按顺序入队QUEUEDredis> INCR user_idQUEUEDredis> INCR user_idQUEUED原创 2017-01-15 22:52:50 · 288 阅读 · 0 评论 -
redis进阶3-排序
排序命令Sort1 sort 属于Key的命令可以对列表类型、集合类型、有序集合类型键 进行排序。1.1对集合排序。1.2对list进行排序1.3对有序集合排序,会忽略score,值对元素进行排序。1.4 对字符串的list进行排序1.5 limit参数,前多少名的用户redis 127.0.0.1:6379> SOR原创 2017-01-15 22:56:53 · 275 阅读 · 0 评论 -
redis进阶4-消息通知、订阅发布
1 使用LPUSH+RPOP即可实现队列的概念。并通过循环,来读取list中数据。不足:需要使用循环,每隔1s读取队列。2 BRPOP,有消息加入队列就发通知。BRPOP会阻塞队列,RPOP不会。BRPOP返回值介绍:假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。反之,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key原创 2017-01-15 23:01:52 · 766 阅读 · 0 评论 -
redis 进阶5-管道笔记
1 客户端和redis使用tcp连接。2 执行多个命令时,每个命令都需要等待上一个命令执行完。3 redis底层通信协议对管道(piplineing) 提供了支持。通过管道可以一次性发送多条命令,并在执行完后一次性将结果返回。原创 2017-01-15 23:03:28 · 435 阅读 · 0 评论 -
redis进阶6-实战python
1 redis作为缓存数据库,除了使用redis-cli.exe与数据redis连接之外,还支持编程语言进行操作,比如java,python,php等。在这简单介绍一下Python连接redis的相关操作,2 安装python的redis库,如果使用pip的话,直接用如下命令安装即可pip install redis3 数据库连接import redis#r=原创 2017-01-18 10:27:27 · 334 阅读 · 0 评论 -
Redis进阶7-持久化
一、定义:持久化:将内存中的数据同步到硬盘,redis重启之后数据能恢复二、两种方法第一种:RDB:快照方式》。符合一定条件时,自动将内存所有数据生成一份快照并存在硬盘上。条件有四个:1)根据配置规则进行自动快照;2)用户执行Save和BGsave命令。3)执行flushall命令;4)执行复制(replication)时。第二种:AOF:每次执行命令后将命令本身记录下原创 2017-01-19 23:13:53 · 309 阅读 · 0 评论 -
SpringBoot+vue 项目搭建
背景虽然vue 和Springboot出来很久了,但是自己在当时刚入门的时候还是遇到过很多问题。这里通过创建后台系统管理项目为背景,一步步使用vue和spingboot搭建,希望可以帮助入门同学快速使用vue和Springboot开发项目。在这里不介绍一些关键vue语法,语法可以参考 - vue官网 - vue-router路由官网 - UI-Element官网vue使用创建...原创 2018-08-05 21:11:38 · 6333 阅读 · 0 评论