标签:北冥星眸 FULL GROUP NO ZERO sql SELECT
智能客服SaaS平台(后端代码)
单体架构服务
具体架构信息请参考架构设计文档:
https://kdocs.cn/l/sf3SUPU11
[文件] 智能客服SaaS平台系统架构设计概要.docx
集成框架
spring-boot、mybatis、redis、netty、mysql
权限拦截
基于spring AOP的拦截器,拦截token和接口请求地址
在线接口文档
服务启动ip+端口(例如localhost:8080)
swagger2访问路径:ip:port/swagger-ui.html
离线接口文档
地址:https://www.kdocs.cn/p/67638393629?from=docs&source=docsWeb
mybatis generator使用
配置resources目录下的 generatorConfig.xml(具体配置参数请参考官方文档)
点击idea中的maven工具下的plugin:mybatis-generator:generate
数据库变更脚本
文件地址:resources/sql-script/sql.sql
服务打包
使用maven工具:mvn run install
使用idea编辑器:集成maven插件,点击install
本服务打包为jar包,配置文件可以放置在jar包之外
数据库版本处理
mysql5.7.5及以上版本实现了对功能依赖的检测。默认启用了ONLY_FULL_GROUP_BY SQL模式。在该模式下,我们使用GROUP BY查询时,出现在SELECT字段后面的只能是GROUP BY后面的分组字段,或使用聚合函数包裹着的字段,否则会报错如下信息:
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database.table.column' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
当使用ORDER BY查询时,不能使用SELECT DISTINCT去重查询。否则会报错如下信息:
Expression #1 of ORDER BY clause is not in SELECT list, references column 'database.table.column' which is not in SELECT list; this is incompatible with DISTINCT
解决方法 通过命令关闭ONLY_FULL_GROUP_BY SQL模式
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
但该方法在重启Mysql服务后会失效,重启服务后会发现ONLY_FULL_GROUP_BY还是存在的。
通过修改mysql的配置文件关闭ONLY_FULL_GROUP_BY SQL模式
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
标签:北冥星眸,FULL,GROUP,NO,ZERO,sql,SELECT 来源: https://www.cnblogs.com/hellosiyu/p/15684614.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。