Chris Blog

Finally you found me.

设计模式之行为型模式总结

Behavioral Patterns

前言 本篇主要使用实例代码与UML进行总结, 代码已上传至GitOSC 责任链模式/职责链模式 - Chain of responsibility 标准的职责链: 只要有Handler处理了请求, 那么这个请求就不再被传递 功能链: 每个职责对象都会这个请求进行一定的功能处理 请求不一定会被处理, 可以在最后添加一个缺省职责对象, 表示不支持此功能的处理 在客户端组合链, 再由客...

设计模式之结构型模式总结

Structural Patterns

前言 本篇依然使用Java作为核心语言来总结结构型模式, 重点使用UML类图以减少来回切换代码而引起的逻辑混乱性. 代码已上传至GitOSC 适配器模式 - Adapter 适配器模式是将其他接口的功能进行转换, 本质是转调已有功能. 相对于装饰者模式, 适配器模式转换后的接口会变, 装饰者则保持同一个接口, 所以装饰者模式适合递归. 下面是将Android手机适配为假iPhone...

设计模式之创建型模式总结

Creational Patterns

前言 以前学习设计模式的时候, 通常都是咖啡馆, 披萨店, 各种各样的红绿头鸭. 明显地, 这些概念需要更新一下, 这次我们用MacBook和XPS13两台电脑作为例子来快速复习创建型设计模式. 创建型模型简单直接, 所以大部分模式直接通过UML进行展示, 个别需要特别注意的将会以代码的形式展示. 代码已上传至GitOSC 简单工厂 简单工厂可以为客户端选择具体的实现 下面是La...

MySQL性能分析命令

慢查询、SQL执行计划分析与行锁仪表盘

MySQL性能分析命令 本文主要记录MySQL中的慢查询日志和执行计划分析器的使用。 行锁的争夺情况 mysql> show status like 'innodb_row_lock%'; +-------------------------------+-------+ | Variable_name | Value | +-----------...

MySQL Data Definition Language 精简版

常用DDL的总结备忘

创建数据库 CREATE DATABASE IF NOT EXISTS product DEFAULT CHARSET utf8 ; 删除数据库 DROP DATABASE IF EXISTS product; 创建表 测试用的示例, 包含单值索引, 多值索引, 外键 CREATE TABLE IF NOT EXISTS `account`.`t_user` ( `id`...

MySQL Data Definition Language 详细版

https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-data-definition.html

创建数据库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name...

Java DateTime与1582历法问题

凯撒历和格里高利历间转换的隐性问题

事情经过 今天下午在研究mybatis对jsr310的支持, 跟往常一样我准备了一个MySQL测试用的数据表, 里面有些DATETIME列, 默认值是’0000-01-01 00:00:00’, 映射Java类中的create_time等这样的java.time.OffsetDateTime属性. 当我测试的时候我就整个蒙圈了, 某些字段插入我是用OffsetDateTime.now()...

MyBatis Generator速查手册

遍历MBG官网后的归纳与总结

前言 从Eclipse到idea都一直都在用Mybatis Generator, 也完整翻阅过官方文档, 可是看完就没有那回事了. 这次决定要记录下来, 以备不时之需. 以下根据mybatis-generator-maven-plugin 1.3.5为基础而写的随笔. 快速指南 根据实际情况, 项目里都是用MBG的Maven插件, 这里着重以Maven的形式讲解, 并且禁用了MyBat...