ELAdmin 的 CRUD

数据表结构

弄个测试的数据表,不同类型的几个字段,表名位 mp_reply。
ELAdmin 的 CRUD_第1张图片

生成代码

ELAdmin 可以自动生成代码。
左侧目录系统工具–代码生成,点开以后可以看到上面创建的数据表mp_reply,点击配置。
进入的页面内容有两部分,上方是字段配置,下方是生成配置。

  • 字段配置:配置查询方式、是否显示等。MyBatis 版本和 JPA 版本相比,不支持自动维护创建时间和更新时间,我是后期手动维护上了,理论上框架应该支持自动,可能是我还没找到位置。
    ELAdmin 的 CRUD_第2张图片
  • 生成配置:
    作者名称:任意写
    模块名称:要生成代码对应的 Module 名称
    至于包下:包名
    接口名称:swagger 上和前端页面会显示
    前端路径:eladmin-web 项目要保存前端页面的路径。我的是/Users/admin/Desktop/workspace/idea2024/eladmin-mp/eladmin-web/src/views/mp/reply
    ELAdmin 的 CRUD_第3张图片
    都完成以后,点击顶部的保存&生成,对应的代码会自动加入到后台和前端代码中,后端需要重启,前端会自动部署上。

配置菜单

新建一个目录
ELAdmin 的 CRUD_第4张图片
该目录下再新建一个菜单。
菜单标题:比较容易理解,左侧菜单最终显示的文字
路由地址:访问的 url,会和目录的路由拼接,我的就是/mp/mp/reply
权限标识:可以从自动生成代码的 controller 注解中查看到,复制过来就行。测试阶段也可以先为空
组件名称:可以从前端代码中找到
组件路径:查看前端代码的路径
ELAdmin 的 CRUD_第5张图片

授权

进入角色管理,将对应菜单权限勾选上,点击保存。
ELAdmin 的 CRUD_第6张图片

测试

刷新页面,左侧目录能查看到新添加的菜单了,对应功能也可以正常使用。除了:编辑的时候报错。
原因分析:创建的表主键使用的是 bigint 类型,长度超过 16 位的话就会引起后几位都是 0。
ELAdmin 的 CRUD_第7张图片

处理方式:将返回值的主键字段添加上注解@JSONField(serializeUsing = ToStringSerializer.class),比如自动生成的代码是直接返回的实体类,那么就在实体类主键上增加一行注解。

    @JSONField(serializeUsing = ToStringSerializer.class)
    @TableId(value = "reply_id")
    @ApiModelProperty(value = "ID")
    private Long replyId;

重启后运行,各项功能正常。
其他微调比如调整宽度,文字内容等,只需要进入前端 index.vue 修改。

匿名访问

在 controller 方法上增加注解 @AnonymousAccess 即可

    @GetMapping("/search")
    @Log("查询公众号自动回复单条")
    @ApiOperation("查询公众号自动回复单条")
    @AnonymousAccess
    public ResponseEntity<MpReply> queryMpReplyOne(MpReplyQueryCriteria criteria){
        return new ResponseEntity<>(mpReplyService.queryOne(criteria),HttpStatus.OK);
    }

调用的 service层增加对应代码

    @Override
    public MpReply queryOne(MpReplyQueryCriteria criteria) {
        return mpReplyMapper.findOne(criteria);
    }

mapper中增加

    MpReply findOne(@Param("criteria") MpReplyQueryCriteria criteria);

mapper.xml 增加

    <select id="findOne" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from mp_reply
        <where>
            <if test="criteria.itCode != null">
                and it_code = #{criteria.itCode}
            </if>
        </where>
    </select>

本地浏览器访问:http://localhost:8000/api/mpReply/search?itCode=录入过的 itCode
无需登录就能返回结果。如果 itCode 不存在,返回的是 null

你可能感兴趣的:(2024,EL-Admin,的使用,ELAdmin,CRUD,生成代码,Java)