正文
将生成的表结构复制到 mysql 命令执行工具 navicat 里面新建查询执行建表语句,执行成功,这说明 AI 程序员生成的 mysql 表结构没有任何问题,不用人工修改就可以直接使用。
下面我们再继续来生成具体的业务逻辑,包括 controller控制层、service接口层、service实现类、mapper层、domain实体类、mybatis的xml语句,那么我们将需要的内容整合后给出我们的需求:
【帮我生成 sys_cms_notice 表的controller控制类、service接口类、service实现类、domain实体类、mapper接口类、mybatis的xml查询文件,需要包含 新增、修改、删除、发布功能】
在AI程序员生成具体的代码之后,我们可以在工作区通过点击切换具体的文件名来查看文件变更内容,这里可以看到我们需要的新增、修改、删除、发布功能,以及默认的列表查询功能都有了,那么我们点击【接受】接受所有文件。
点击右侧顶部的【接受】可以一键接受所有生成的文件,但是接受的文件并不是放在我们项目现有结构对应的位置,因为这里也暂时无法指定接受后选择的文件夹目录,这一点不太方便,但是还好,只是需要人工再调整一下位置就可以。因此可以接受后再手工调整一下位置就可以了,自动接受后的结构如图:
按照上图的目录结构将具体的代码移动到对应的位置后,我们再次生成这次功能需要用到的前端页面,其实对于Java 开发者来说,画页面往往是最费劲的,毕竟不是专业的前端,如果AI程序员可以直接生成前端的新增页面、修改页面、列表页面就会方便很多了,开发效率也会大大提升。最终使用【基于 sys_cms_notice 生成 新增、修改、列表 的 html 页面】,完成了页面的生成。
这里需要注意,在生成页面的时候,AI 程序员会同时生成一些不是我们想要的内容,比如工作区的 mapper.xml 、java 文件这些,不是本次生成的内容不要【接受】否则会让原来已经接受的文件乱了。
逐个接受我们需要的三个页面之后,同样的将页面调整到规定的目录文件夹下。但是这里生成的页面,跟实际项目中用到的统一风格的页面有一定的差异,考虑到为了页面风格的统一,那么我可以采取先选择参考文件,然后基于参考文件的方式来生成页面。
比如这里我首先生成公告管理的 add.html,那么我选择项目中原有 post 岗位 的add.html ,这里交给大家一个小窍门,可以点击选择文件的【+】,在弹出的搜索框中输入需要搜索的文件名,然后选择文件,同样的方法我在选择我们生成的公告管理的 domain 实体类,然后输入需求:【参考这个 add 页面生成一个 syscmsnotice 对象的 add 页面】。
这个时候再看,有了参考页面之后生成的新的 add.html 页面内容就和项目原来 add 页面的结构和风格比较一致了,这样也省去了再次重新调整页面风格的耗时。
同样的办法,我们重新更换参考页面,这次参考页面改为 edit.html ,同样的选择公告管理的 domain 实体类对象 SysCmsNotice.java 作为参考来生成 公告管理的 edit 页面,输入我们的需求:【参考这个 edit 页面生成一个 syscmsnotice 实体类的 edit 页面】。
等待edit 页面生成成功之后,我们再次接受当前 edit.html 页面,并将页面调整到 正确的目录下。
同样的方法,我们选择需要参考的列表页面 post.html,选择我们的公告管理 domain 下的实体类,输入需求:【参考 post 页面生成一个 syscmsnotice 实体类的 list 页面】,在生成的过程中也可能会遇到异常的情况,比如【生成过程超时】。
那么遇到这种情况的解决方案就是重新尝试一次,再次尝试一次果然可以正常返回了,同样的操作,接受当前页面并转移到正确的目录下,然后就可以进行后面的步骤了 。
其实到这里,整个公告管理的功能基本上都已经开发完了,剩下的就是配置菜单,然后进行一些功能或者页面的优化调整,后面将继续进行功能优化。
配置菜单的步骤这里不再细说,不同的项目配置菜单的方式也不太一样,另外这也不属于AI 程序员关注的内容,AI程序员主要是关注功能开发。
这里我们来逐个验证我们的AI程序员帮我们生成的类的代码是否符合业务需求,那么我们先来看一下controller 控制层的代码。
这里可以看到AI程序员确实帮我们生成了我们需要的新增、修改、删除、发布功能,但是没有生成页面跳转方法,也就是说如果想要新增数据,首先需要一个新增页面的跳转方法,然后才会是新增数据的提交,这里我参照上面页面的方式,同样选择一个项目中现有的 controller 方法作为参考来补充跳转页面的方法,提示词:【参考 SysPostController 帮我给 SysCmsNoticeController 补充 新增 、修改 、列表页面的跳转方法】。
这里需要说明的是,AI 程序员虽然参考现有的 controller 生成了页面跳转代码,但是AI程序员不会从整体把控,这里的页面路径前缀是不对的,需要人工修改。
另外就是最初生成的方法的返回与当前已有工程的风格也不一致,也是需要修改完善的地方。