安全性架构

系统安全往往在设计之初会有考虑,但在项目进度和成本压力下,又容易忽视了安全,不管是主动或被动的。

系统安全设计需要增加成本而又不能直接带来效益,往往只有在系统被攻击、数据泄露、或甲方有聘期第三方安全厂商检测出数据安全问题时,才会关注软件安全问题。

在政企、医疗信息系统、教育信息系统这类由外部厂商开发的信息系统往往存在数据安全问题。

阅读更多

IDEA 默认无法引入Maven插件lifecycle-mapping问题解决

Spring Boot 项目引入了 Maven 插件lifecycle-mapping ,打包的时提示Could not find artifact org.eclipse.m2e:lifecycle-mapping:jar:1.0.0,导致打包失败。

解决:

  1. 下载 https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin 源码。
  2. 进入到项目根目录(pom文件所在目录),执行:mvn clean install 命令。
  3. 刷新 Spring Boot 项目依赖,pom 文件报红解除,再次编译项目即可。
阅读更多

MyBatis:typeHandler类型处理器及在映射中使用枚举

TypeHandler 即类型处理器,作用是将 Java 数据类型参数转成数据库的数据类型,或取出数据库数据转成 Java 数据类型。

MyBatis 为 TypeHandler 提供了系统定义,也支持用户自定义,系统定义就可以实现大部分功能了。如果用户自定义 TypeHandler ,则需要小心谨慎。例如自定义 TypeHandler 实现枚举转换。

阅读更多

MyBatis:SqlSession下的四大对象

Mapper 通过类名和方法名就可以匹配到配置的SQL。

Mapper 执行的过程是通过 ExecutorStatementHandlerParameterHandlerResultHandler 来完成数据库操作和结果返回的。

阅读更多

MyBatis:SqlSession运行过程

SqlSession 是一个接口,它本身并不复杂。构建 SqlSessionFactory 就可以拿到 SqlSession。SqlSession 提供了查询,插入,更新,删除的方法,在旧版本 MyBatis 或 iBatis 中常常使用这些接口方法,而在新版的 MyBatis 中建议使用 Mapper。

SqlSession 内部实现相当复杂,是整个 MyBatis 最难理解的部分。

阅读更多

MyBatis:SqlSessionFactory构建过程

SqlSessionFactory 是 MyBatis 的核心类,从这类名可以看出这是个 SqlSession 工厂类,其最重要的功能就是提供创建 MyBatis 的核心接口 SqlSession,所以需要先创建 SqlSessionFactory,为此需要提供配置文件和相关参数。

MyBatis 采用构造模式去创建 SqlSessionFactory,可以通过 SqlSessionFactoryBuild 去创建。构建分两步。

阅读更多

MySQL系列(31):InnoDB 全文索引

官方文档-15.6.2.4 InnoDB Full-Text Indexes

Full-text indexes(全文索引)可在基于文本类型的列(CHAR, VARCHAR 或 text 列) 上创建,可以加快对这些列中包含的数据的查询和DML操作。

全文索引被定义为CREATE TABLE语句的一部分,或使用ALTER TABLECREATE index添加到现有表。

要执行全文索引需要使用 MATCH() ... AGAINST 语法。Section 12.10, “Full-Text Search Functions”.

阅读更多