请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

xcymoo
葡萄城公司职员   /  发表于:2024-2-6 13:58  /   查看:101  /  回复:0
本帖最后由 xcymoo 于 2024-2-6 14:01 编辑

背景介绍
众所周知,SpreadJS即将在V17版本迎来重大更新——报表插件ReportSheet,基于SpreadJS本身强大的表格能力,全新的报表插件让报表和数据录入用户有了全新的能力和体验,可让用户快速完成报表和数据录入功能的搭建,相比之前,节省了大量的开发成本。
报表功能依赖于DataManager数据关系引擎,对于用户来讲,配置数据源显得尤为重要,这是生成报表的基础。没有数据源,谈论报表就是无源之水、无本之木。
在大部分情况下,企业的数据都是存储在数据库中的,而SpreadJS作为一个纯前端的控件,不支持直连数据库,这就要求必须有一个接口来向SpreadJS提供数据。而今天这篇文章,就教大家如何利用一个开源项目,快速生成数据接口。

实现方式
前期准备
技术栈:Java,Spring-Boot,MyBatisPlus,Maven(可选)
在开始前,请先确保自己有Java开发环境,并下载好这两个附件。
image.png841505737.png

其中,my-api是我们自己的项目,最终的接口服务也是从这个项目中启动的,我们可以叫它api服务。mybatis-plus-generator-ui是前面提到的开源项目,我们同样给它起个名字,叫接口生成器,它的作用就是帮我们在api服务中生成代码文件。

目录结构介绍
我们先看下api服务下都有哪些文件吧:

TestApplication.java是Springboot的入口文件,除了必要的引入外,还规定了要扫描的Mapper;
image.png108885191.png

Application.yml是配置文件,主要是配置了数据库的连接串,读者需要将其改为自己的数据库连接。
image.png294389342.png

除了这两个文件外,不需要其他文件了,也无需做任何修改。
再来看下生成器的目录,它的文件比较多,但我们不用关心它的内部实现,只关注以下两个文件即可:

TestApplication.java是生成器的启动文件,它没有用配置文件配置数据库的连接,而是写在了代码里,你需要对其做出修改。另外,它提供了表前缀设定和名称转换,我的数据库表没有前缀,也不需要转换名称,故注释掉了,读者可以按需开启。
image.png453427428.png

Controller.java.btl是生成controller的模板文件,开源项目的源码中未开启跨域,这里为了本地测试,我开启了跨域,读者后续有其他需求,也可以在codetpls目录下找到对应的模板文件,按需增减。
image.png98945311.png

启动项目
然后就可以启动生成器了,在TestApplication下点击运行即可,启动成功浏览器后打开localhost:端口号,即可看到ui界面:
image.png890872802.png
image.png489742736.png



生成代码
看到页面上方的“代码生成”按钮了吗,先别急着点它,咱们需要先配置一下生成的文件的包名是什么,点击上方的输出配置:
image.png697332153.png

读者需要将这里的包名改为api服务的包名,这里我已经全都修改好了:
image.png164173888.png

然后返回到上一个页面,选择你要生成接口的数据库表,点击“代码生成”,勾选所有“本次需要生成的文件”的复选框,修改“目标项目根目录”为api服务的根目录。其他配置可以不填,点击开始生成,等待数秒后,api服务下就已经生成好所有勾选的文件了:
image.png569745177.png

image.png59487914.png

到这里就大功告成了,接下来只要以同样的方法启动api服务即可:
image.png383727416.png

启动后,按照application.yml中配置的端口号,结合controller文件中的路径,就可以从localhost请求到数据了,注意请求全部数据的时候,要在最后加一个斜杠/:
image.png923260497.png

可以看到返回的数据和数据库一致:
image.png541617431.png

到这里,接口就已经完成开发了,读者快用开发好的接口试试V17的报表功能吧~


mybatis-plus-generator-ui.zip

5.53 MB, 下载次数: 5

my-api.zip

7.28 KB, 下载次数: 5

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部