一卓的博客

怕什么真理无穷,
进一寸有一寸的欢喜。

0%

基础操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
-- 显示所有的库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE MANAGEMENT;
-- 选择库
USE [数据库名];
-- 显示所有的表
SHOW TABLES;
-- 显示建表语句
SHOW CREATE TABLE [表名];
-- 显示表的定义信息 表结构
DESC [表名];
-- 显示表的定义信息
DESCRIBE TABLENAME;
-- 修改表名
ALTER TABLE OLD_TABLE_NAME RENAME TO NEW_TABLE_NAME;
-- 显示版本信息
SELECT VERSION();
-- 当前选中的库
SELECT DATABASE();
-- 显示当前登录用户
SELECT USER();
-- 显示当前日期
SELECT CURRENT_DATE;
-- 显示当前日期
SELECT CURDATE();
-- 显示当前日期时间
SELECT NOW();
-- 当前时间 时分秒
SELECT CURRENT_TIME;
-- 当前时间戳 年月日时分秒
SELECT CURRENT_TIMESTAMP;
-- 截断表
TRUNCATE TABLE XXX;
-- 删除表 ABC 如果存在删除 不存在则不报错
DROP TABLE IF EXISTS ABC;
-- 把USERNAME值赋给变量@A
SELECT @A:= USERNAME FROM USER WHERE ID = 1;
-- 查询表结构 SQL
SELECT col.* FROM INFORMATION_SCHEMA.`COLUMNS` col WHERE col.TABLE_SCHEMA='schema' AND col.TABLE_NAME='table';
-- 查询表名及表注释 SQL
SELECT TABLE_NAME,TABLE_COMMENT FROM INFORMATION_SCHEMA.`TABLES` WHERE TABLE_SCHEMA='schema';
阅读全文 »

最近整理书签,将部分文章转载至自己博客防止 404。

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

阅读全文 »

Freemarker 操作字符串

substring(start,end)从一个字符串中截取子串。

1
2
3
4
5
6
7
8
9
10
11
start:截取子串开始的索引,start 必须大于等于 0,小于等于 end
end: 截取子串的长度,end 必须大于等于 0,小于等于字符串长度,如果省略该参数,默认为字符串长度。
例子:
${'str'?substring(0)} 结果为 str
${'str'?substring(1)} 结果为 tr
${'str'?substring(2)} 结果为 r
${'str'?substring(3)} 结果为
${'str'?substring(0,0)} 结果为
${'str'?substring(0,1)} 结果为 s
${'str'?substring(0,2)} 结果为 st
${'str'?substring(0,3)} 结果为 str
阅读全文 »

引言

在项目的开发中,代码分层经常简单划分为 ControllerServiceMapper三层,但是并没有把职责边界划分清晰。经常会出现以下情况:

  • Controller 层出现业务逻辑。
  • Service 层大而笨重,甚至有可能在 Service 层出现 Mapper 层应关心的 Sql 拼接等问题。

这样往往造成代码无法复用,并且各分层的职责边界不清晰,后续代码维护起来会非常麻烦。

在真正的团队开发中,每个人的习惯、代码风格都不同,写出来的代码必然带着自己的标签,后续其他人维护的时候,是按着自己的习惯修改还是遵循编码者的风格,又是个艰难的选择,如果都随心所欲,长久以此势必造成代码晦涩难懂,难以维护。

阅读全文 »

引言:

最近有个需求:后端所有数据的 ID 字段返回前段时均需要加密处理,前端传入后端需要解密处理,你会如何设计呢?

普通做法:

返回数据时直接调用工具类进行 ID 字符串的加密,前端传入数据后再调用工具类进行 ID 的解密

这样做的问题是所有地方都需要进行加解密的处理,但是此操作和业务无关,不应该被感知,所以本文带大家来从框架层面解决这个问题。

阅读全文 »