本人在使用 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
#if>
步骤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};
#if>
原因:因为默认会生成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/