前言:作为一个前端狗,现在可以写springBoot代码了,每次都被当成切图崽,所以,俺要崛起了,现在来分享分享经验(博主Mysql不会写,纯前端,JAVA 0 基础,这篇文章主要是为小白还有自己以后写的,高手绕道)
前后端分离人不分离,不再遥不可及,感谢开源若依
一、小凯废话语录
首先呢,先上个干货,看看成果的啦,不然别人以为小凯在吹牛逼
以上代码小凯写的,牛逼不?
下面就来探索一下咋写的
节目预告 ai生成
首先先打开Navicat Premium,点击查询,新建查询,
上述是我输入的指令,下面是ai生成的结构,上面的数据哪里来的呢,右击鼠标,对准你觉得结构比较好的表,如下:
点击设计表 CV大法术 然后丢给AI
话术 :
请参照这个mysql,完成班级管理表,要求是什么,然后坐等生成。
生成之后,就到了刚刚的点击查询,新建查询咯,新建完成之后,点击运行就ok了
二、若依生成代码
使用的是若依框架的小伙伴有福了,没有使用的往后看下一步骤,跳过此步骤
这样就生成了一个,类似于模态框关闭之后的那个表格的效果,这样根据需求,修改字段,增删改查就OK了
注意每次都编辑一下,看下生成的名字和模块再去点击生成代码。生成业务名字和菜单一定要看下
然后就可以点击生成代码,去直接CV覆盖咯。
上述是生成的前后端代码,直接去添加到项目里面的,main是后端的JAVA代码
sql直接拖到Navicat去找到对应的库运行就好啦
vue直接打开有api文件,放到对应的位置,vue页面放到对应的位置
main必须放在对应的模块下,我用的是ruoyi-system,记住,直接拖到src文件夹下覆盖,虽然有时候会出现奇怪的报错,但是不能手动删除它,不然剁手吧。
完成上述操作,直接重新运行IDEA和前端的,你会发现增删改查已经完成了。
三、自己写接口的看来咯
哪有小孩天天哭,哪有接口都能生成?那JAVA工程师==优化?(开玩笑,勿喷,我错了)
还是和上面一样,找到Navicat,如图所示
选择仅结构,然后到页面用文本打开,复制到AI,这么说哦
我的示例是为了写个echarts分析
这是我的数据库表结构,我想查询义务教育和高中对应的班级数量,义务教育包括一年级到初三,高中包括高一到高三,帮我写出sql语句:CREATE TABLE `class_management_copy1` ( `class_id` bigint NOT NULL AUTO_INCREMENT COMMENT '班级ID', `grade` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '年级', `class_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '班级名称', `del_flag` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', `create_by` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '创建者', `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '更新者', `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`class_id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 37 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '班级管理表' ROW_FORMAT = DYNAMIC;
语句是这样的: 这是我的数据库表结构 。。。。帮我写出sql语句:粘贴的代码
ai回复:
SELECT
CASE
WHEN grade IN ('一年级', '二年级', '三年级', '四年级', '五年级', '六年级', '初一', '初二', '初三') THEN '义务教育'
WHEN grade IN ('高一', '高二', '高三') THEN '高中'
ELSE '其他'
END AS education_level,
COUNT(*) AS class_count
FROM
class_management_copy1
WHERE
del_flag = '0' -- 只统计未删除的班级
GROUP BY
education_level;
到查询,新建查询,运行,先检查一下对不对(不废话了)
然后保证正确的情况下,去AI
顺便打开IDEA,复制点东西,在ai输入框输入这么一段话:
是从你当前模块里面找到差不多的结构代码,去让ai根据你这个生成代码
这是我的controller的代码:
@PreAuthorize("@ss.hasPermi('system:student:remove')")
@Log(title = "学生管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(studentManagementService.deleteStudentManagementByIds(ids));
}这是service代码(快捷键Ctrl+鼠标左键):public int deleteStudentManagementByIds(Long[] ids);
这是serviceimpl代码(快捷键Ctrl+alt+b跳转):
@Override
public int deleteStudentManagementByIds(Long[] ids)
{
return studentManagementMapper.deleteStudentManagementByIds(ids);
}这是mapper代码(快捷键Ctrl+alt+b跳转):public int deleteStudentManagementByIds(Long[] ids);
这是xml代码(快捷键Ctrl+alt+b跳转):
<delete id="deleteStudentManagementByIds" parameterType="String">
delete from student_management where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>帮我按照这个格式,生成这个sql的查询java代码:SELECT
CASE
WHEN grade IN ('一年级', '二年级', '三年级', '四年级', '五年级', '六年级', '初一', '初二', '初三') THEN '义务教育'
WHEN grade IN ('高一', '高二', '高三') THEN '高中'
ELSE '其他'
END AS education_level,
COUNT(*) AS class_count
FROM
class_management_copy1
WHERE
del_flag = '0' -- 只统计未删除的班级
GROUP BY
education_level;刚刚上面ai回复的内容
上面红色的字体只是说明作用,不用给ai。
这是ai的回复,找到对应的模块,直接CV就好啦,报错的话,根据报错信息投喂给ai,然后他会告诉你咋解决的。
四、前端如何调用
找到controller.java模块,你刚才CV的代码在哪里?有个
这就是前端api封装的名字了,我的示例是averageMetrics。
如图:
我生成的是在student.js里面写的,各位看官根据自己的来,前端的不教了,别卷我一个小小的切图崽了。
以上就是本期的全部内容的,您的支持是小凯更新最大的动力,加油,迟早前后端分离人不分离!!!
喜欢请一波三连