本文共 4357 字,大约阅读时间需要 14 分钟。
作为后端程序员,相信大家都写过以下几种代码:
抛开业务来说,这几种代码是我们项目中最最基本的代码了,每一个项目中都会出现大量的这种代码。那么你的项目中这种代码你是怎么写的呢?
组件名称:syj-minicode
下方出现的entityName为当前操作的对象名称或者数据库表名称(注意命名规范要符合驼峰命名法,例如:UserOrder或者user_order都可以) 删除接口为物理删除,逻辑删除请使用update接口
@RequestMapping(value = "/syj-api/{entityName}/{id}", method = RequestMethod.GET)
@RequestMapping(value = "/syj-api/{entityName}/page", method = RequestMethod.POST)@RequestBody: GridPageRequest
这里的GridPageRequest为分页查询的条件,看一下它的组成元素
/** * 查询关键字Map */ private MapsearchMap; /** * 模糊查询关键字Map */ private Map likeSearchMap; /** * 排序关键字Map */ private Map orderMap; /** * 分组关键字数组 */ private String[] groupArray; private int pageNum; private int pageSize;
前端查询时只需要按照查询条件组装GridPageRequest对象就可以了
3. 插入@RequestMapping(value = "/syj-api/{entityName}/insert", method = RequestMethod.POST)@RequestBody: Object(待插入对象)
@RequestMapping(value = "/syj-api/{entityName}/update", method = RequestMethod.PUT)@RequestBody: Object(待更新对象)
@RequestMapping(value = "/syj-api/{entityName}/{id}", method = RequestMethod.DELETE)
@RequestMapping(value = "/syj-api/{entityName}/deleteByIds", method = RequestMethod.DELETE)@RequestBody: Listids(待删除主键列表)
因为默认情况下单个对象查询、修改、删除所依据的主键的字段名使用的都是"id",但是很可能有的项目使用的是userId、orderId、roleId等主键,如果你的项目符合这个条件注入下方这个bean。
@Bean public IdField idField() { Mapmap=new ConcurrentHashMap<>(); map.put("user","userId");//key的名称为实体名称或数据库表名称,value为主键属性名 map.put("order","orderId"); map.put("role","roleId"); IdField idField=new IdField(); idField.setMap(map); return idField; }
有的项目在进行插入和更新时会加入创建人和修改人等信息。如果有此需求请按照如下方式调用
创建一个名为InsertExtend的bean并实现DefaultExtend接口
@Componentpublic class InsertExtend implements ExtendInterface{ @Override public Mapexectue() { Map map=new HashMap<>(); map.put("createTime", System.currentTimeMillis()); map.put("createBy", "创建人id"); map.put("createUserName", "创建人名称"); return map; }}
创建一个名为UpdateExtend的bean并实现DefaultExtend接口
@Component public class UpdateExtend implements ExtendInterface{ @Override public Mapexectue() { Map map=new HashMap<>(); map.put("updateTime", System.currentTimeMillis()); map.put("updateBy", "修改人id"); map.put("updateUserName", "修改人名称"); return map; } }
上方使用方式其实是直接抽象到了controller层,解决一般的需要是没问题的,但是我们是有业务逻辑的,那么存在业务逻辑的情况下如何使用呢?
你可以在处理完业务逻辑后在service中调用
private BaseService getUserBaseService(){ return ServiceBeanFactory.getBean("User"); }
MapuserMap=getUserBaseService().selectOneById("115");User user=(User) BeanMapUtil.mapToBean(map,User.class);
List
getUserBaseService().insertSelective(user);
getUserBaseService().updateByIdSelective(user);
getUserBaseService().deleteById("115");
Listlist=new ArrayList<>();list.add("115");list.add("116");list.add("117");getUserBaseService().deleteByIds(list);
看完我的介绍你觉得这个组件能满足你的基本需要么,如果可以话请移步下方的GitHub链接看一下这个组件的源码写的如何以及如何使用吧。
本文出自,转载请保留。