一、拓展篇

首先需要重写getModel方法,但是这有个问题,重写之后的方法和getModel的参数有点冲突,所以选择不重写,另外写个方法占且叫get Model吧,get Model的实现如下

/** *  * @De ion: 基础类扩展,实现在一些快速的一步操作 * @author lianghao * @date 2016年2月26日 下午3:02:04 */public class  Controller extends Controller {       public <T extends Model<?>> T get Model(Class<?> modelClass, String... removeParas) {        T model = null;        try {            model = (T) modelClass.newInstance();        } catch (Exception e) {            logger.error(" Controller init exception" + e);        }        Map<String, String[]> parasMap = getParaMap();        Map<String, String> removeParasMap = new HashMap<String, String>();        for (String para: removeParas) {            removeParasMap .put(para, para);        }        for (Entry<String, String[]> e : parasMap.entrySet()) {            if (removeParasMap.containsKey(e.getKey()))                continue;            if (e.getValue()[0] != null)                model.set(reqParaFormat.paraToFormat(e.getKey()), e.getValue()[0]);        }        return model;    }}

这里面有两个方法去转换参数格式,如果请求的参数是根据自己的需要实现不同的转换,我这边以请求的是驼峰转成数据库的大写如userName转成USER_NAME,具体的实现可以根据自己的需求做封装,有了这个 Model增改就很方便了,扩展如下

public boolean save(Class<?> modelClass, String... keys){      Model model = get Model(modelClass, keys);      return model.save();}public boolean update(Class<?> modelClass, String... keys){      Model model = get Model(modelClass, keys);      return model.update();}/**必须传入主键id**/public boolean delete(Class<?> modelClass, String... keys){      Model model = get Model(modelClass, keys);      return model.delete();}

这样就搞定了

使用篇

完成了上面的扩展,使用时,只要把你的Controller继成你的 Controller,就可以了,使用如下,一步增删改

/**后面参数加入不属于这个表的参数过滤,如果没有就不加**/save(User.class, "test");update(User.class);delete(User.class);

又节省了你的开发时间,只需一行代码就搞定了增删改,妈妈再也不用担心我的学习

收藏 打印