doc/test-data.sql
, 是为了测试代码生成准备的库,请先在数据库中导入sp-generate
,此为代码生成器sp-server
和sp-admin
项目所在路径)权限管理->角色列表->分配权限
选中即可字段注释 [特殊声明]
例如以下sql,将会自动生成如下所示的UI界面
-- 商品表
drop table if exists ser_goods;
CREATE TABLE `ser_goods` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '商品id [no]',
`name` varchar(200) DEFAULT NULL COMMENT '商品名称 [text]',
`avatar` varchar(512) DEFAULT NULL COMMENT '商品头像 [img]',
`image_list` varchar(2048) COMMENT '轮播图片 [img-list]',
`content` text COMMENT '图文介绍 [f]',
`remark` varchar(512) DEFAULT NULL COMMENT '商品备注 [textarea]',
`money` int(11) DEFAULT '0' COMMENT '商品价格 [num]',
`stock_count` int(11) DEFAULT 0 COMMENT '剩余库存 [num]',
`status` int(11) DEFAULT '1' COMMENT '商品状态 (1=上架,2=下架) [j]',
`create_time` datetime COMMENT '创建日期 [date-create]',
`update_time` datetime COMMENT '更新日期 [date-update]',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='商品表';
INSERT INTO `ser_goods`(`id`, `name`, `avatar`, `image_list`, `remark`, `content`, `money`, `stock_count`, `status`, `create_time`, `update_time`) VALUES (1001, '小苹果', 'http://127.0.0.1:8099/upload/image/2020/05-11/1589130441278158564136.jpg', 'http://127.0.0.1:8099/upload/image/2020/05-11/15891304215541588315943.png', '这是一个小呀小苹果', '这是一个小呀小苹果<p><br></p>', 23, 213, 1, now(), now());
INSERT INTO `ser_goods`(`id`, `name`, `avatar`, `image_list`, `remark`, `content`, `money`, `stock_count`, `status`, `create_time`, `update_time`) VALUES (1002, '大鸭梨', 'http://127.0.0.1:8099/upload/image/2020/05-11/15891304588142094778376.png', 'http://127.0.0.1:8099/upload/image/2020/05-11/15891301925381859798545.jpg', '大鸭梨', '<p>大鸭梨图文介绍</p>', 214, 234, 1, now(), now());
INSERT INTO `ser_goods`(`id`, `name`, `avatar`, `image_list`, `remark`, `content`, `money`, `stock_count`, `status`, `create_time`, `update_time`) VALUES (1003, '小橘子', 'http://127.0.0.1:8099/upload/image/2020/05-11/15891326019482012079187.jpg', 'http://127.0.0.1:8099/upload/image/2020/05-11/1589133225670119768604.jpg', '小橘子', '<p>小橘子</p>', 123, 123, 2, now(), now());
声明 | 说明 | 详见 |
---|---|---|
[text] | 声明一个普通输入框,这是默认值,还可以写成 [t] 、[input] ([text j=like]代表模糊查询 ) |
无 |
[no] | 代表生成表单时忽略此字段 | 无 |
[img] | 声明一个图片字段,会生成图片上传 | 无 |
[audio] | 声明一个音频字段,会生成音频上传 | 无 |
[video] | 声明一个视频字段,会生成视频上传 | 无 |
[file] | 声明一个文件字段,会生成文件上传(需在UploadConfig.java 中配置文件后缀白名单) |
无 |
[img-list] | 声明一个图片集合字段,会生成多图片上传,还可以写成 [imgList] 、[img_list] |
无 |
[audio-list] | 声明一个音频集合字段,会生成多音频上传,还可以写成 [audioList] 、[audio_list] |
无 |
[video-list] | 声明一个视频集合字段,会生成多视频上传,还可以写成 [videoList] 、[video_list] |
无 |
[file-list] | 声明一个文件集合字段,会生成多文件上传,还可以写成 [fileList] 、[file_list] |
无 |
[img-video-list] | 声明一个图片与视频混合的集合字段,还可以写成 [imgVideoList] 、[img_video_list] |
无 |
[richtext] | 声明一个富文本字段,会生成富文本插件,还可以写成 [f] |
无 |
[textarea] | 声明一个多行文本域 | 无 |
[num] | 声明数值输入字段 | 无 |
[enum] | 声明一个枚举字段,具体语法请查看下方示例,还可以写成 [j] |
无 |
[date] | 声明一个日期字段 | 无 |
[date-create] | 声明一个日期字段(数据创建日期) | 无 |
[date-update] | 声明一个日期字段(数据更新日期) | 无 |
[fk-1] | 声明一个外键(主表数据<1000时使用,比如商品分类表),格式为 [fk-1 pk=主表.主键.连表字段.连表字段注释],例如:[fk-1 pk=sys_type.id.name.所属分类] |
fk-1 |
[fk-2] | 声明一个外键(主表数据>1000时使用,比如用户表),格式为 [fk-2 pk=主表.主键],例如:[fk-2 pk=sys_user.id] |
fk-2 |
--notp | 此字段取消解析 | 无 |
fk-1
为简单外键(主表数据<1000时使用,比如商品分类表)fk-1
外键[fk-1 pk=主表.主键.连表字段.连表字段注释]
,例如:[fk-1 pk=sys_type.id.name.所属分类]
fk-2
为复杂外键(主表数据>1000时使用,比如用户表)fk-2
外键此时fk-2
有三种写法,分别造成三种生成结果
-- 写法1,最简单写法,不进行多表查询,此时在后台管理展示的只有user_id (带有超链接,鼠标点击后打开用户详情)
`user_id` bigint(20) COMMENT '用户id [fk-2 pk=sys_user.id]',
-- 写法2,带出username值,此时在后台管理展示的有user_id、username (语法与fk-1类似)
`user_id` bigint(20) COMMENT '用户id [fk-2 pk=sys_user.id.username.用户昵称]',
-- 写法3,带出username、avatar值,此时在后台管理展示的有user_id、username、avatar (可以按照这个语法一直扩展,带出n个值)
`user_id` bigint(20) COMMENT '用户id [fk-2 pk=sys_user.id.username.用户昵称.avatar.用户头像]',
fk-1
和 fk-2
还都能声明一些额外参数,来控制一些功能link
:是否增加超链接,点击之后打开主表数据详情,fk-1
默认为false
,fk-2
默认为true
sh1owfk
:是否显示原始的外键字段,fk-1
默认为false
,fk-2
默认为true
fname
:指定此外键对应的实体类字段名称,这在解决多个外键指向同一个表重名的场景时非常有用,一般情况下你不用指定此字段,因为sa-plus
会自动为你的字段计算合适的名称参考以下示例
-- 此写法代表生成的后台管理页面,在展示用户id的时候,不再有"点击打开用户详情功能"
`user_id` bigint(20) COMMENT '用户id [fk-2 pk=sys_user.id, link=false]',
-- 此写法代表生成的后台管理页面,在展示用户id的时候,不再展示外键字段,即:只展示username,不展示user_id
`user_id` bigint(20) COMMENT '用户id [fk-2 pk=sys_user.id.username.用户昵称, showfk=false]',
git
功能,则需要把.gitignore
文件的最后四行删除掉,因为这个文件把代码生成器生成的代码都给屏蔽掉了