做爲後端程序員,相信你們都寫過如下幾種代碼:前端
拋開業務來講,這幾種代碼是咱們項目中最最基本的代碼了,每個項目中都會出現大量的這種代碼。那麼你的項目中這種代碼你是怎麼寫的呢?java
組件名稱:syj-minicodegit
下方出現的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爲分頁查詢的條件,看一下它的組成元素github
/** * 查詢關鍵字Map */ private Map<String, String> searchMap; /** * 模糊查詢關鍵字Map */ private Map<String, String> likeSearchMap; /** * 排序關鍵字Map */ private Map<String, String> 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: List<String> ids(待刪除主鍵列表)
由於默認狀況下單個對象查詢、修改、刪除所依據的主鍵的字段名使用的都是"id",可是極可能有的項目使用的是userId、orderId、roleId等主鍵,若是你的項目符合這個條件注入下方這個bean。後端
@Bean public IdField idField() { Map<String,String> map=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; }
有的項目在進行插入和更新時會加入建立人和修改人等信息。若是有此需求請按照以下方式調用api
建立一個名爲InsertExtend的bean並實現DefaultExtend接口數組
@Component public class InsertExtend implements ExtendInterface{ @Override public Map<String, String> exectue() { Map<String, String> map=new HashMap<>(); map.put("createTime", System.currentTimeMillis()); map.put("createBy", "建立人id"); map.put("createUserName", "建立人名稱"); return map; } }
建立一個名爲UpdateExtend的bean並實現DefaultExtend接口app
@Component public class UpdateExtend implements ExtendInterface{ @Override public Map<String, String> exectue() { Map<String, String> 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"); }
Map<String,Object> userMap=getUserBaseService().selectOneById("115"); User user=(User) BeanMapUtil.mapToBean(map,User.class);
List<Map<String, Object>> userMaps=getUserBaseService().selectBySelective(gridPageRequest); for (Map<String, Object> map:userMaps){ User user=(User) BeanMapUtil.mapToBean(map,User.class); }
getUserBaseService().insertSelective(user);
getUserBaseService().updateByIdSelective(user);
getUserBaseService().deleteById("115");
List<String> list=new ArrayList<>(); list.add("115"); list.add("116"); list.add("117"); getUserBaseService().deleteByIds(list);
看完個人介紹你以爲這個組件能知足你的基本須要麼,若是能夠話請移步下方的GitHub連接看一下這個組件的源碼寫的如何以及如何使用吧。
本文出自http://zhixiang.org.cn,轉載請保留。