魔法书
关于
标签
分类
HTML
声明 ‹!DOCTYPE›
注释 ‹!-- --›
标签 ‹›‹/›
文档
根标签 ‹html›
头部标签 ‹head›
标题 ‹title›
基本 URL 链接 ‹base /›
资源引用 ‹link/›
元信息 ‹mata /›
样式 ‹style›
脚本 ‹script›
脚本兼容性 ‹noscript›
主体标签 ‹body›
全局属性
块级标签
语义化分区 ‹header› ‹nav› ‹aside› ‹main› ‹section› ‹article› ‹figure› ‹figcaption› ‹hgroup› ‹summary› ‹details› ‹footer›
正文标题 ‹h1› - ‹h6›
正文段落 ‹p›
分割线 ‹hr›
列表 ‹ul› - ‹li›|‹ol› - ‹li› | ‹dl› - ‹dt›‹dd›
分区 ‹div›
行内标签
内容容器 ‹span›
换行标签 ‹br›
超链接 ‹a›
内容ID ‹data›
格式化文本
文本引用
文本修饰
文本标识
特殊文本
特殊字符
图片标签 ‹img›
多媒体标签 ‹audio› ‹vedio› ‹embed› ‹object› ‹param›
加载 ‹source› ‹track›
进度 / 值显示 ‹meter› ‹progress›
图片适配显示 ‹picture›
表格 ‹table› ‹th› ‹tr› ‹td›
表格分层 ‹caption› ‹thead› ‹tbody› ‹tfoot›
表格列分组 ‹col› ‹colgroup›
表单 ‹form›
标签 ‹label›
表单控件 ‹input›
单行文本框 ‹input type='text'›
数字 ‹input type='number'›
密码 ‹input type='password'›
电子邮箱 ‹input type='email'›
电话号码 ‹input type='tel'›
日期 ‹input type='date'›
按钮 ‹input type='button'›
单选按钮 ‹input type='radio'›
重置按钮 ‹input type='reset'›
复选框 ‹input type='checkbox'›
提交按钮 ‹input type='submit'›
图片提交按钮 ‹input type='image'›
颜色选择器 ‹input type='color'›
文件上传 ‹input type='file'›
隐藏数据 ‹input type='hidden'›
时间 ‹input type='time'›
日期和时间 ‹input type='datetime-local'›
年份或月份 ‹input type='month'›
区域值 ‹input type='range'›
搜索 ‹input type='search'›
链接 ‹input type='url'›
星期 ‹input type='week'›
下拉列表 ‹select› ‹option›
分组 ‹optgroup›
选项列表 ‹datalist›
文本域 ‹textarea›
按钮 ‹button›
标签分组 ‹fieldset› ‹legend›
计算或用户操作的结果 ‹output›
对话框 ‹dialog›
画布 ‹canvas›
可伸缩矢量图形 ‹svg›
地图 ‹map› ‹area›
插槽 ‹slot›
DOM 文档对象模型
EventTarget 对象
Node 对象
Attr 对象
CDATASection 对象
CharacterData 对象
Comment 对象
ProcessingInstruction 对象
Element 对象
DocumentFragment 对象
Document 对象
XMLDocument 对象
DocumentType 对象
DOMString 对象
DOMStringList 对象
DOMTimeStamp 对象
DOMTokenList 对象
DOMException 对象
DOMImplementation 对象
Event 对象
CustomEvent 对象
Window 对象
HTMLCollection 对象
MutationObserver 对象
MutationRecord 对象
NodeFilter 对象
NodeIterator 对象
NodeList 对象
Promise 对象
Range 对象
Text 对象
TreeWalker 对象
URL 对象
Worker 对象
MyBatis
框架搭建 [idea]
自动补全
框架搭建 [eclipse]
XML Catalog 离线校验(自动补全)
mybatis-config 映射配置
属性(property)
环境配置(environments)
设置(settings)
实体类设置别名(typeAliases)
Mapper 注册与绑定(mappers)
数据库厂商标识(databaseIdProvider)
会话工厂(SqlSessionFactory)
数据库交互(SqlSession)
MyBatisUtil 工具类
事务管理
Mapper接口 & 映射
映射调用方式
数据库查询 ‹select›
参数查询与模糊查询
多参数查询
数据库添加 ‹insert›
返回数据主键
数据库删除 ‹delete›
数据库更新 ‹update›
Mapper标签(xml)
查询 ‹select›
插入和更新 ‹insert›、‹update›
主键返回 ‹selectKey›
SET子句 ‹set›
删除 ‹delete›
WHERE子句 ‹where›
条件 ‹if›
首尾删除与添加 ‹trim›
条件分支 ‹choose› ‹when› ‹otherwise›
循环迭代 ‹foreach›
SQL 片段 ‹sql›
SQL 片段引用 ‹include›
字符串预处理
映射集 ‹resultMap›
构造方法 ‹constructor›
结果映射 ‹id› ‹result›
关联 ‹association›
关联查询(一对一)
集合 ‹collection›
集合查询(一对多)
鉴别器 ‹discriminator›
延迟加载(按需关联/懒加载)
继承
resulType 和 resultMap 的区别
缓存 ‹cache›
缓存引用 ‹cache-ref›
绑定变量 ‹bind›
映射器注解
二级缓存(@CacheNamespace)
缓存引用(@CacheNamespaceRef)
属性(@Property)
SQL 语句注解(@Select @Insert @Delete @Update)
可选属性(@Options)
构造方法(@ConstructorArgs @Arg)
结果类型(@ResultType)
数据集合(@Results @Result @ResultMap)
一对一和一对多(@One @Many)
鉴别器(@TypeDiscriminator @Case)
Map 结果键值(@MapKey)
动态SQL构建(@SelectProvider @InsertProvider @UpdateProvider @DeleteProvider )
参数(@Param)
主键获取(@SelectKey)
缓存刷新(@Flush)
自定义语句驱动注解(@Lang)
缓存
本地缓存/一级缓存 (local cache)
二级缓存
自定义缓存
Spring
控制反转(IOC)/依赖注入(DI)
ApplicationContext 容器
Web
容器监听器(ContextLoaderListener)
Web MVC
配置xml
web.xml
配置前端控制器 ‹servlet› ‹servlet-mapping›
加载顺序 ‹load-on-startup›
拦截器 ‹filter› ‹filter-mapping›
初始化spring配置文件 ‹context-param› ‹listener›
dispatcher-servlet.xml
静态资源映射 ‹mvc∶resources›
视图解析器(ViewResolver)
控制器映射(HandlerMapping)
SimpleUrlHandlerMapping
BeanNameUrlHandlerMapping
后端控制器(Controller)
基于json格式的mvc交互
文件上传 MultipartResolver
拦截器 ‹mvc∶interceptors›
使用注解
声明后端控制器(@Controller)
映射请求地址(@RequestMapping)
获取请求参数(@RequestBody @RequestParam)
@RequestParam
@RequestBody
@RequestPart
校验(@Valid,@Valided)
返回JSON / XML数据 (@ResponeBody)
数据返回控制器(@RestController)
修饰类和方法 (@ResponseStatus)
参数预加载(@ModelAttribute)
数据绑定(@InitBinder)
数据共享(@SessionAttributes)
异常处理器 (@ExceptionHandler)
全局处理器(@ControllerAdvice)
全局异常处理
自定义异常的处理
全局数据绑定
全局数据预处理
跨域资源共享 (@CrossOrigin)
URI属性注解(@PathVariable,@RequestHeader,@CookieValue)
视图路径解析
以'/'开头丨${pageContext.request.contextPath}
不以'/'开头丨‹base›标签指定路径
视图返回
视图保护
转发和重定向
控制器全局参数
参数接收
解决参数传递乱码
参数传递
Ajax交互
HttpMessageConverter
SSM 框架整合
SSM 前后端数据交互对接
响应体空值处理
SSM 全局异常统一处理
集成 Hibernate Validator 校验框架
校验(@Valid @Valided)
顺序校验(@GroupSequence)
动态顺序校验(@GroupSequenceProvider)
自定义校验注解
参数校验异常处理
框架搭建 [idea]
DI 配置xml(applicationContext.xml)
对象 ‹bean›
实例化
自定义作用域
初始化和销毁
启动和停止
继承
核心接口 BeanFactory
FactoryBean
设值注入 ‹property›
注入实体对象 ‹props›
自动装配模式
构造注入 ‹constructor-arg›
方法注入 ‹lookup-method/›
方法替换 ‹replaced-method›
装配限定 ‹qualifier›
元数据 ‹meta›
对象别名 ‹alias›
多配置文件加载 ‹import›
注解扫描器 ‹context:component-scan›
读取数据库连接配置(PropertyPlaceholderConfigurer)
配置数据连接池(DriverManagerDataSource)
自定义数据库连接池(DruidDataSource)
DBCP数据库连接池(BasicDataSource)
C3P0数据库连接池(ComboPooledDataSource)
DI 使用注解
作用域(@Scope)
预加载(@Lazy)
缓存控制(@CacheConfig @EnableCaching @Caching @Cacheable @CachePut @CacheEvict)
空值标记(@NonNull @NonNullApi @NonNullFields @Nullable)
条件导入(@Conditional)
分组校验(@Validated)
对象注入(@Component)
属性注入(@Value)
@value使用外部属性配置文件
引入外部配置文件(@PropertySource)
自动装配(@Autowired @Resource @Inject)
注入优先(@Primary)
注入区分(@Qualifier)
注解扫描器 (@ComponentScan)
自定义过滤规则(@Filter)
配置beans容器(@Configuration)
创建bean(@Bean)
初始化和销毁(@PostConstruct 和 @PreDestory)
异步方法(@Async)
开启异步支持-多线程(@EnableAsync)
开发环境配置指定(@Profile和@ActiveProfiles)
计划任务(@Scheduled @EnableScheduling)
AOP
AspectJ框架实现AOP
AspectJ框架 配置xml
定义切面和切入点 ‹aop∶aspect› ‹aop∶pointcut›
切入点表达式
组合切入点表达式
命名及匿名切入点
前置通知 ‹aop∶before›
后置通知 ‹aop∶afterreturning›
环绕通知 ‹aop∶around›
异常通知 ‹aop∶afterthrowing›
最终通知 ‹aop∶after›
定义通知器 ‹aop∶advisor›
定义事务配置 ‹tx∶advice›
AspectJ框架 使用注解
动态开启AOP(@EnableAspectJAutoProxy)
定义切面和切入点(@Pointcut @Aspect)
通知注解
前置通知(@Before)
后置通知(@AfterReturning)
环绕通知(@Around)
异常通知(@AfterThrowing)
最终通知(@After)
通知参数
自动传参
集成MyBatis
applicationContext.xml中配置
接口映射配置器(MapperFactoryBean)
接口映射批量扫描器(MapperScannerConfigurer)
事务
TransactionManager 事务管理器
事务属性
事务状态
声明式事务(xml & 注解)
配置xml方式
创建事务管理器
使用注解方式(@Transactional)
环绕通知使用事务(@Around)
编程式事务(TransactionTemplate & PlatformTransactionManager)
Spring Boot
框架搭建 [idea]
Test 测试类
单元测试
断言(Assertions)
前置条件(Assumptions)
参数化测试(@ParameterizedTest)
功能测试
切片测试
创建测试上下文(@SpringBootTest)
加载原生web资源 @WebAppConfiguration
应用上下文配置类(ConfigurableApplicationContext)
核心注解(@SpringBootApplication)
自动配置类加载(@EnableAutoConfiguration)
自动导入包(@AutoConfigurationPackage)
类导入(@Import)
条件导入(@Conditional)
全局配置(application.properties)
多环境配置切换
属性加密
日志配置
属性松散绑定规则
全局配置属性注入
逐个注入(@Value)
批量注入(@ConfigurationProperties @EnableConfigurationProperties)
自定义配置文件引用(@PropertySource)
属性转换
自定义配置解析类(@ConfigurationPropertiesBinding)
外部上下文配置导入(@importResource)
Lombok 实体类简化注解
静态资源规则
错误页面
请求拦截(HandlerInterceptor & Filter & @WebFilter)
文件上传(MultipartFile)
忽略警告(@SuppressWarnings)
集成JSP
集成 Mybatis
mapper注册(@Mapper @MapperScan)
使用第三方数据连接池(druid)
mybatis 逆向工程生成配置
前后端数据交互对接
全局响应体处理器(ResponseBodyAdvice)
取消封装
响应体空值处理
全局异常处理类
集成 Validation 校验框架
参数校验异常处理
MySQL(Beta)
命令操作
登录命令
在线安装
手动安装
设置环境变量
数据依赖
函数依赖(Functional Dependency)
多值依赖(Multivalued Dependency)
连接依赖(Join Dependency)
键/码/关键字
范式
命名规范
设计规范
数据表对应关系
语句规范
行为规范
注释
数据类型
类型约束
类型使用规范
JSON 数据操作
char 和 varchar的区别
运算符
运算优先级
函数
日期函数
字符串函数
字符串比较
正则表达式
数学函数
比较函数
窗口函数
可加载函数
流量控制函数
类型转换函数
字符集转换
XML 函数
位函数
加密和压缩函数
锁定功能函数
信息函数
JSON 函数
创建 JSON 值
搜索 JSON 值
修改 JSON 值
返回 JSON 值
JSON 表函数
聚合函数
其他函数
SQL 语言类型
全局权限用户表(DCL)
创建权限用户(CREATE USER/INSERT/GRANT)
修改权限用户名(RENAME USER)
修改root用户密码(set password for/mysqladmin/UPDATE/ALTER)
修改权限用户密码(set password for/UPDATE/ALTER/GRANT)
密码重置
删除权限用户(DELETE FROM/DROP USER)
数据库用户权限表(DCL)
权限分布
查看权限(SELECT/SHOW GRANTS FOR)
增加权限(GRANT priv_type ON)
删除权限(REVOKE priv_type ON)
原子数据定义语句(原子DDL)
在 DDL 语句中的变化
支持的存储引擎
查看 DDL 日志
DATABASE 数据库(DDL)
字符集(character set)
查看字符集
设置字符集
utf8 和 utf8mb4
校验规则(collation)
查看检验规则
设置校验规则
utf8_bin、utf8_general_ci(utf8_general_cs)、utf8_unicode_ci(utf8_unicode_cs)
utf8mb4_general_ci 和 utf8mb4_unicode_ci
事务
锁
储存引擎
约束
Table 数据表(DDL)
创建数据表(CREATE TABLE)
查看数据表(SHOW TABLE/DESC/SHOW CREATE TABLE/SHOW COLUMNS FROM
修改数据表(ALTER TABLE)
添加列字段(ADD)
修改列字段(RENAME TO/MODIFY/CHANGE)
删除列字段(DROP)
添加约束
默认值约束(DEFAULT)
非空约束(NOT NULL)
主键约束(PRIMARY KEY)
自增约束(AUTO_INCREMENT)
外键约束(FOREIGN KEY … REFERENCES …)
唯一约束(UNIQUE)
检查约束(CHECK)
定义约束名(ADD CONSTRAINT)
删除约束
列级约束(DEFAULT、NOT NULL、AUTO_INCREMENT)
表级约束(PRIMARY KEY、FORERGN KRY、UNIQUE、CHECK)
添加行数据(INSERT)
从其他表的数据添加(INSERT TABLE … SELECT)
使数据插入或更新(ON DUPLICATE KEY UPDATE)
为单行或单列行插入数据(INSERT … SET)
修改行数据(UPDATE)
删除行数据(DELETE FROM)
复制数据表
清空数据表(TRUNCATE)
删除数据表(DROP TABLE)
MySQL SELECT 查询语句(DQL)
查询限制
条件(WHERE)
模糊查询(LIKE/NOT LIKE)
内置函数(LOCATE、POSITION、INSTR、FIND_IN_SET)
正则查询
正则关键字(REGEXP/RLIKE/NOT REGEXP/NOT RLIKE)
正则函数 [ REGEXP_INSTR()、REGEXP_LIKE()、REGEXP_REPLACE()、REGEXP_SUBSTR() ]
分组(GROUP BY)
筛选(HAVING)
排序(ORDER BY)
文件排序(filesort)
分页(LIMIT)
合并行重复(DISTINCT)
合并结果集(UNION [DISTINCT]/UNION ALL)
连接(JOIN)
自连接
内连接([INNER] JOIN)
左(外)连接(LEFT [OUTER] JOIN)
右(外)连接(RIGHT [OUTER] JOIN)
等值连接查询
子查询(嵌套查询)
带有 ALL(SOME)/ANY 的子查询
带有 [NOT] IN 的子查询
带有 [NOT] EXISTS 的子查询
相关子查询
派生表
横向派生子查询
索引
查看索引(SHOW INDEX)
创建索引(CREATE INDEX)
主键索引(PRIMARY KEY)
唯一索引(UNIQUE)
普通索引(INDEX/KEY)
全文索引(FULLTEXT)
系统变量与自定义配置
索引重建
检索模式
自然语言模式(IN NATURAL LANGUAGE MODE)
布尔模式(IN BOOLEAN MODE)
查询扩展模式(WITH QUERY EXPANSION/IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION)
反向索引(倒排索引)-› [InnoDB]
Auxiliary Table 辅助表
分词法
全文停止词
全文解析器
ngram
MeCab
空间索引(SPATIAL)
删除索引(DROP INDEX )
单列 -› 多列(组合/复合/联合)索引
替代方案
最左匹配原则
有序索引排序
降序索引(Descending Indexes)
索引条件下推
前缀索引
函数索引
在 JSON 数据查询的使用
生成列(Generated Column)
查看生成列
模拟函数索引
索引隐藏
索引覆盖
索引优化
数据储存模式与读取
InnoDB 引擎
聚簇索引(聚集索引/主键索引/主索引)
非聚簇索引(非聚集索引/二级索引/辅助索引/辅助键索引)
MyISAM 引擎
非聚簇索引(非聚集索引/辅助索引/辅助键索引/二级索引 )
分析器(EXPLAIN|DESCRIBE|DESC)
分析器输出格式化(EXPLAIN FORMAT = TRADITIONAL|JSON|TREE)
查询分析器(EXPLAIN SELECT)
分析索引
查询性能分析器(EXPLAIN ANALYZE)
索引条件下推
索引条件下推(Index Condition Pushdown)是 MySQL 5.6 版本的新特性,是一种对多列索引的最左匹配原则条件下对索引利用的完善优化。 索引条件下推把本来由 Server 层做的索引条件检查向下推给存储引擎层处理,以降低回表和访问存储引擎的次数,提高查询效率。 如果索引中包 ...
2023-04-05
MySQL
降序索引(Descending Indexes)
在MySQL8.0版本中支持了 降序索引(Descending Indexes) 功能,升序索引可用的所有数据类型都支持降序索引,现在我们可以在定义索引时指定索引列的排序方式 只有InnoDB存储引擎才支持降序索引,但有以下限制: InnoDB SQL 解析器不使用降序索引。对于 InnoDB 全文搜索,这意味着索引表的 ...
2023-04-04
MySQL
有序索引排序
数据表的排序操作是指数据库在执行过程中,先将满足条件的数据全部读出来,放入内存中,再执行快排,这个内存就是sort_buffer。如果临时数据量比sort_buffer大, 就要把数据放入临时文件,然后做外部排序,可见这个排序过程的消耗是比较大的。 有序索引排序是通过创建索引来实现排序的一种方法。利用索引中最左匹配原则下的有序性排序,可以避免 ...
2023-04-03
MySQL
最左匹配原则
最左匹配原则是指在一个复合条件查询语句中,会先检查最左侧的条件,如果这个条件能够使用索引进行匹配,那么就会使用索引来提高查询效率,如果不能使用索引,那么就会扫描整张表来查找匹配的记录 多列索引是基于多个字段的索引,它可以同时按照多个字段进行查找操作。由于B+树的这些性质,它只能根据一个键值来进行构建。如果要根据多个键值来构建B+树,那么就需要对每个键值 ...
2023-04-02
MySQL
替代方案
多列索引可以提高查询的效率,但并不是所有情况下都适合使用多列索引。 例如以下场景中不适合使用多列索引: 数据库表的数据量非常小,使用单列索引已经足够。 需要对表进行频繁的更新、插入、删除操作,因为每次更新操作都需要对索引进行更新,会降低数据库的性能。 多列索引的列数过多,会占用大量的磁盘空间和内存空间,导致数据库的性能下降。 ...
2023-04-01
MySQL
单列 -› 多列(组合/复合/联合)索引
MySQL除了为单个列值设置单列索引,也允许为多个列的组合设置索引,这种索引称为多列(组合 / 复合 / 联合)索引(Multiple-Column Indexes)。多列索引是将多个列综合起来建立的索引,可以在多种查询类型中快速定位所需数据,而不用分别建立多个单列索引 联合索引可以用于包含索引中所有列的查询条件的语句, 或者包含索引中的第一列的查询条 ...
2023-03-31
MySQL
删除索引(DROP INDEX )
DROP INDEX 从 tbl_name 表中删除名为 INDEX_name 的索引。此语句映射到 ALTER TABLE语句以删除索引。 语法 DROP INDEX index_name ON <tbl_name> [ ALGORITHM [=] {DEFAULT | INPLACE | COPY} | LOCK [=] {DE ...
2023-03-30
MySQL
空间索引(SPATIAL)
MySQL在5.7之后的版本支持了空间索引,而且支持OpenGIS几何数据模型,MySQL在空间索引这方年遵循OpenGIS几何数据模型规则。 从 MySQL 8.0.12 开始,空间索引不允许使用 ASC 和 DESC 对于InnoDB和MyISAM表,MySQL可以使用类似于创建常规索引的语法创建空间索引,但使用spatia ...
2023-03-29
MySQL
MeCab
MeCab 全文解析器插件是用于日语的全文解析器插件,MeCab 全文解析器插件支持用于 InnoDB 和 MyISAM。 内置的 MySQL 全文解析器使用单词之间的空格作为分隔符来确定单词的开始和结束位置,这对于不使用单词分隔符的表意语言是一个限制。为了解决日语的这个限制,MySQL 提供了一个 MeCab 全文解析器插件。 ...
2023-03-27
MySQL
ngram
内置的MySQL全文解析器使用单词之间的空格作为分隔符,以确定单词的开始和结束位置,这在处理不使用单词分隔符的表意语言时是一个限制。为了解决这个问题,MySQL 提供了一个支持中文、日文和韩文(CJK)的ngram全文解析器,且对 MyISAM 和 InnoDB 引擎有效 在使用中文检索分词插件 ngram 之前,先得在MySQL配置文件里面设置他的分 ...
2023-03-26
MySQL
<
1
2
3
4
5
…
58
>