网站开发表格,ios开发工程师,网站源码本地演示,东莞小程序建设sql-gen仓库地址#xff1a;码云 Github 1. 概述
sql-gen是一个用于提高后端接口开发效率的小工具#xff0c;主要有如下功能#xff1a;
生成连表SQL语句根据WHERE条件来生成封装查询条件的实体类#xff08;RO#xff09;根据SELECT列来生成封装查询结果的实体类… sql-gen仓库地址码云 Github 1. 概述
sql-gen是一个用于提高后端接口开发效率的小工具主要有如下功能
生成连表SQL语句根据WHERE条件来生成封装查询条件的实体类RO根据SELECT列来生成封装查询结果的实体类VO
sql-gen主要有如下特点
自动生成表的别名相关接口TableAliasGenerator自动推断主表和从表的连接条件即ON语句相关接口JoinColumnDeducer自动生成列的别名解决SELECT和WHERE列中的名称重复问题相关接口ColumnAliasGenerator
2. 演示
2.1. 数据库准备
数据库中总共有5张表如下
sys_class班级表sys_grade年级表sys_user用户表用于存放学生和家长sys_user_class_rel学生和班级的关联关系表sys_parent_child_rel学生和家长的关联关系表 sys_user表和sys_parent_child_rel表的具体内容如下
总共有4个用户小明妈妈是小明的家长 另外3张表的具体内容如下
一年级的id为1一年级下有一班和二班其id分别为11和12小明和小红在一班小刚在二班 2.2. 连表查询一 查询id为1的用户即小明的学生信息包括用户信息、班级信息和年级信息 此时需要连接sys_user、sys_user_class_rel、sys_class和sys_grade表并且要以sys_user表的user_id列作为查询条件 可以看出sql-gen默认会将主表和从表中名称相同的列作为连接的条件
2.3. 连表查询二 查询id为1的用户即小明及其家长的信息 此时需要连接sys_user、sys_parent_child_rel、sys_user表sys_user表出现了两次第一次是作为学生表第二次是作为家长表然后以学生表的user_id列作为查询条件即可 可以看出sql-gen还支持child.user_idxxx.child_user_id形式的连接条件
2.4. 聚合查询 查询出每个班级中学生id的平均值、学生名字的最大值和学生人数 此时需要连接sys_user、sys_user_class_rel、sys_class表并且需要将sys_class表的class_id列作为GROUP BY列然后对sys_user表的user_id列进行AVG查询、user_name列进行MAX查询、gender列进行COUNT查询即可CN、MA、MI、AV、SU分别代表COUNT、MAX、MIN、AVG、SUM