快速开发框架推荐使用 jeecg-boot

本人在使用 jeecg-boot曾是某产品的架构师兼开发工程师。之前用的技术也比较旧,但是整体开发速度还可以,源于用HashMap配合Mybitas的复杂查询,再加上前端的easyUI,所以只改xml和js就可以改动业务。

但随着技术不断进步,各种微服务,分布式突飞猛进,尤其在大数据架构和大并发进来,发现之前架构和写代码的地方有很多不足之处。

于是去网上研究各大家的开源框架,对比之下, 推荐使用jeecg-boot。

因为在2年前和另一个快速开发框架jeeplus的创始人有过沟通,看过他写的代码和生成模版。jeecg-boot从代码风格要略胜于一点点儿。

但是看了几天jeecg-boot代码,在使用时候也有不爽的地方,所以直接上手改了,为什么现在不自己搭建了?懒。。。

jeecg-boot底层用的MyBatis-Plus,也是国内比较优秀的开源代码。

既然你用了人家,拜托你删除时候不要用真删除好么,人家有逻辑删除,现在互联网和物联网时代,在现实场景经常有客户跟我说要恢复误删除的数据,我问你,你真删除了,你拿毛给人家恢复啊。

问题1.使用逻辑删除,配置方法:

步骤1:数据库加入is_delete字段int类型

步骤2:jeecg_config.properties加入过滤字段,不然会在列表和更新里显示

#page_filter_fields
page_filter_fields=create_time,create_by,update_time,update_by,is_delete

步骤3:在${entityName}.javai文件里加入

    <#if po.fieldName == 'isDelete'>
    @TableLogic
    

步骤4:application-dev.yml  加入配置

  global-config:
    db-config:
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

-----------------------------------------------------------------------------------------------------------问题1结束

现在比较流行什么微服务,分布式啦的名词。

问题2.你的id用的UUID,开玩笑呢啊,第一个查询速度string没有int快,第二个还没有排序功能。直接SnowFlake

步骤1:mysql数据库id字段bigint(20)类型,实际会产生19位,之前是18位的数字,但我也不确保哪天会变20位,想知道自己去看看算法。

步骤2:${entityName}文件修改

    @TableId(type = IdType.ID_WORKER)

步骤3:${entityName}文件修改加入

    <#if po.fieldName == primaryKeyField>
      private Object ${po.fieldName};
    

     原因:因为默认会生成int类型,位数是不够滴。所以先用object类型,然后在java代码里转成String,为啥?java的long类型返回vue时,会把超过精度后几位变成0,为了查询快数据库又不能动。

步骤4:${entityName}Controller.javai文件的queryPageList()方法加入

        for (${entityName} bean : pageList.getRecords()){
            bean.setId(bean.getId().toString());
        }

步骤5:需要把Control里5处的int都改成long类型。

-----------------------------------------------------------------------------------------------------------问题2结束

1对多里修修改更多,请联系我。

 

http://jeecg-boot.mydoc.io/

你可能感兴趣的:(java)