系统安全往往在设计之初会有考虑,但在项目进度和成本压力下,又容易忽视了安全,不管是主动或被动的。
系统安全设计需要增加成本而又不能直接带来效益,往往只有在系统被攻击、数据泄露、或甲方有聘期第三方安全厂商检测出数据安全问题时,才会关注软件安全问题。
在政企、医疗信息系统、教育信息系统这类由外部厂商开发的信息系统往往存在数据安全问题。
系统安全往往在设计之初会有考虑,但在项目进度和成本压力下,又容易忽视了安全,不管是主动或被动的。
系统安全设计需要增加成本而又不能直接带来效益,往往只有在系统被攻击、数据泄露、或甲方有聘期第三方安全厂商检测出数据安全问题时,才会关注软件安全问题。
在政企、医疗信息系统、教育信息系统这类由外部厂商开发的信息系统往往存在数据安全问题。
IDEA 默认无法引入Maven插件lifecycle-mapping问题解决
Spring Boot 项目引入了 Maven 插件lifecycle-mapping
,打包的时提示Could not find artifact org.eclipse.m2e:lifecycle-mapping:jar:1.0.0
,导致打包失败。
解决:
mvn clean install
命令。MyBatis 对存储过程提供了调用功能,并且支持对游标数据的转化功能。
MyBatis:typeHandler类型处理器及在映射中使用枚举
TypeHandler 即类型处理器,作用是将 Java 数据类型参数转成数据库的数据类型,或取出数据库数据转成 Java 数据类型。
MyBatis 为 TypeHandler 提供了系统定义,也支持用户自定义,系统定义就可以实现大部分功能了。如果用户自定义 TypeHandler ,则需要小心谨慎。例如自定义 TypeHandler 实现枚举转换。
Mapper 通过类名和方法名就可以匹配到配置的SQL。
Mapper 执行的过程是通过 Executor
,StatementHandler
,ParameterHandler
和 ResultHandler
来完成数据库操作和结果返回的。
SqlSession 是一个接口,它本身并不复杂。构建 SqlSessionFactory 就可以拿到 SqlSession。SqlSession 提供了查询,插入,更新,删除的方法,在旧版本 MyBatis 或 iBatis 中常常使用这些接口方法,而在新版的 MyBatis 中建议使用 Mapper。
SqlSession 内部实现相当复杂,是整个 MyBatis 最难理解的部分。
SqlSessionFactory 是 MyBatis 的核心类,从这类名可以看出这是个 SqlSession 工厂类,其最重要的功能就是提供创建 MyBatis 的核心接口 SqlSession,所以需要先创建 SqlSessionFactory,为此需要提供配置文件和相关参数。
MyBatis 采用构造模式去创建 SqlSessionFactory,可以通过 SqlSessionFactoryBuild 去创建。构建分两步。
原文:Monoliths are not dinosaurs(2023/05/05),译:单体架构并不过时
亚马逊CTO Werner Vogels 的 Blog:https://www.allthingsdistributed.com/
构建可演进的软件系统是一种策略,而非信仰。 必须以开放的心态重新审视你的架构。
MySQL 中的全文索引的索引类型是 FULLTEXT 。
MySQL 的全文索引只能用于 InnoDB 或 MyISAM 表,并且只能为 CHAR、VARCHAR 或 TEXT 列创建。
官方文档-15.6.2.4 InnoDB Full-Text Indexes
Full-text indexes
(全文索引)可在基于文本类型的列(CHAR, VARCHAR 或 text 列) 上创建,可以加快对这些列中包含的数据的查询和DML操作。
全文索引被定义为CREATE TABLE
语句的一部分,或使用ALTER TABLE
或CREATE index
添加到现有表。
要执行全文索引需要使用 MATCH() ... AGAINST
语法。Section 12.10, “Full-Text Search Functions”.