mybatis级联查询-collection
前期准备准备数据创建数据库jilian在数据库中创建俩个表studen和teacher表,俩者关系:teacher通过主键id和student表的teacher_id字段相关联(一对多关系)
建表语句123456789101112131415161718192021CREATE TABLE teacher (id int(11) NOT NULL AUTO_INCREMENT,name varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '教师名称',PRIMARY KEY (id)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='教师表';CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT,student_name varchar(64) CHARACTER SET utf8 COLLATE utf8_gene ...
mybatis自定义拦截器模板
注册拦截器123456789101112131415161718import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * 注册mybatis拦截器 * * @author LISHUANG * @date 2019/12/2 */@Configurationpublic class MybatisConfiguration { @Bean public TestInterceptor testInterceptor() { return new TestInterceptor(); }}
重写SqlSource12345678910111213141516171819202122import org.apache.ibatis.mapping.BoundSql;import org.apache.ibatis.mapping.SqlSourc ...
mysql json
https://www.sjkjc.com/mysql-ref/json_search/
根据json value匹配数据
利用mysql json的json seacch功能匹配路径来实现
123456SELECT extra_info FROM t_shop WHERE JSON_SEARCH( extra_info, 'one', '%1%', '', '$[*].props[*].propValue' ) != ''
mysql事务隔离级别
四大特征原子性事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
一致性指在事务开始之前和事务结束以后,数据不会被破坏例:假如 A 账户给 B 账户转 10 块钱,不管成功与否,A 和B 的总金额是不变的。
隔离性 多个事务并发访问时,事务之间是相互隔离的,即一个事务不影响其它事务运行效 果。简言之,就是事务之间是互不影响的。
持久性表示事务完成以后,该事务对数据库所作的操作更改,将持久地保存在数据库之中。
事务隔离级别读未提交可以读取其它事务未提交的数据
读已提交该事务可以读取到其他事务提交的数据
可重复读(默认级别)事务开启后,不在允许修改数据
串行读加锁读,串行执行
事务问题
脏读读取到了其他事务没有提交的数据
不可重复读同一个事务前后两次查询的数据不一致
幻读一次事务中前后数据量发生变化
mysql日志
sql执行顺序日志bin log
binlog存储对数据库所有操作行为的记录,主要用于mysql的主从同步和数据恢复
记录格式12345# 获取binlog有没有开启及日志文件存储的位置SHOW VARIABLES LIKE 'log_bin%';# 获取binlog的记录格式SHOW VARIABLES LIKE 'binlog_format%';
对比
ROW(建议使用)
STANTEMENT
MIXED
特点
记录对行的操作记录
如果一个update语句更新了10行数据则会存储该10行的操作记录,
记录sql语句
ROW和STANTMENT的混合体
优点
因为是存储基于行的操作记录,所以不会导致主备不一致,
只记录sql语句,相较ROW会更加的减少空间和避免大量的IO操作
减少空间和避免大量的IO操作。同时会判断当前的执行操作会不会导致主备不一致,如果会的话,就会使用ROW格式存储
缺点
IO的操作/文件大小都会比其他俩中更多/更大
可能会导致主备不一致,且因为存储的时sql语句,所有当有 ...
Mysql语句
查看当前正在执行的sql1234-- 第一种查询SHOW PROCESSLIST;-- 第二种查询select * from information_schema.`PROCESSLIST`;
修改mysql接收的数据包大小123--查询show VARIABLES like '%max_allowed_packet%';
第一种1set global max_allowed_packet = 2*1024*1024*10
此时只是临时修改,mysql服务重启后失效
第二种修改my.ini文件中的配置;在[mysqld]部分加入 max_allowed_packet=大小,重启后永久有效
zookeeper
zookeeper简介
分布式的协调服务,主要用户解决分布式系统中多个进程之间的同步限制,防止出现脏读;
应用场景
统一命名服务
ip映射域名
统一配置管理
znode存储配置消息
统一集群管理
znode存储集群节点的实时状态
服务动态上下线
创建临时节点用户服务动态上下线
软负载均衡
znode存储服务器的访问次数,
分布式锁
特点
zk:一个领导者多个跟随者组成的集群
集群中只要有半个以上节点存活,zk集群就能正常的提供服务,所以部署zk集群时的节点数量都是奇数
全局数据一致,每个节点保存相同一份的数据副本
更新请求顺序执行。来自同一个client的更行请求按其发送顺序依次执行
数据更新原子性,要么成功要么失败
实时性,在一定范围内,client都能读到最新的数据
数据结构
zk数据模型结构类似unix文件的文件系统,整体类型一个树,每一个节点称为znode,每个znode默认存储1mb的数据,每个znode都能通过路径进行唯一标识
配置参数
名称
数据类型
含义
tickTime
num
心跳时长,单位毫秒
initLimit
nu ...
java延迟队列
1.继承Delayed类123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869package com.jcxx.common.util.delayed;import java.util.concurrent.Delayed;import java.util.concurrent.TimeUnit;/** * 延时队列 * * @param <T> */public class DelayedItem<T> implements Delayed { /** * 到期时间 */ private final long activeTime; /** * 数据 */ private final T data; public DelayedItem(long activeTime, T data, T ...
java类加载流程.md
流程图https://www.processon.com/diagraming/60c1aafb1e085306cf6c540b
流程解释加载阶段
加载阶段是类加载过程的第一个阶段。在这个阶段,JVM 的主要目的是将字节码从各个位置(网络、磁盘等)转化为二进制字节流加载到内存中,接着会为这个类在 JVM 的方法区创建一个对应的 Class 对象,这个 Class 对象就是这个类各种数据的访问入口
类加载器启动类加载器Booostrap ClassLoader:主要负责加载java安装目录lib下的核心类
扩展类加载器Extension ClassLoader:主要加载java安装目录lib\ext目录下的类
应用程序类加载器App ClassLoader:主要负责加载ClassPath环境变量指定的路径的类
双亲委派简介流程https://www.processon.com/diagraming/60c1aafb1e085306cf6c540b
使用验证阶段在把.class文件加载到内存之前根据java虚拟机的规范判断.class文件是否符合规范
准备阶段给类分配一定的内存空间,并给 ...
hexo相关命令
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using H exo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
clear1$ hexo cl
generate1$ hexo g
start1$ hexo s
publish1$ hexo d
More in ...