组件化设计及边界定义

软件开发行业共识,应该将复杂的软件进行拆分,拆成多个低复杂度的子系统,子系统还可以继续拆分成更小粒度的组件。即软件需要进行模块化,组件化设计。

Java 开发依赖的一个个 Jar 包就是组件。

阅读更多

MySQL之Row XXX was cut by GROUP_CONCAT()错误解决

MySQL数据库,一个更 UPDATE 更新用到了 group_concat 函数,报:Row XXX was cut by GROUP_CONCAT() 的错误,但单独的查询没有报错。

错误含义是:GROUP_CONCAT 有最大的长度限制,超过最大长度就会被截断掉。由 group_concat_max_len 系统变量限制最大长度,其默认值为 1024。

阅读更多

MySQL之You can't specify target table for update in FROM clause错误解决

MySQL 根据子句进行条件更新或删除时,报如下错误:You can’t specify target table for update in FROM clause

错误意思是指:在同一语句中,update 和 select 子句不能是同一个表。

解决方式:需要把 SELECT 条件子句的结果集转为中间临时表,此临时表会依赖于 SELECT 条件子句驱动表。

阅读更多

MySQL系列(30): MySQL 递归查询

开发中经常会碰到传父类id,查出其下所有子类需求。

实现思路:拿当前查到的 id 递归查询 parent_id = id,合并所有的 id 到一个字段 ids,然后查 id 在 ids 中的数据 。

实现方案:一种是在代码中递归查询实现;另一种是在 SQL语句递归查询实现。

本篇主要描述在 MySQL 中的递归查询SQL语句实现。

阅读更多