JFinal一行代码搞定增删改,要的就是快

简介: 一、拓展篇首先需要重写getModel方法,但是这有个问题,重写之后的方法和getModel的参数有点冲突,所以选择不重写,另外写个方法占且叫getBaseModel吧,getBaseModel的实现如下/** * * @Description: 基础类扩展,实现在一些快速的一步操作 ...

一、拓展篇

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

/**
 * 
 * @Description: 基础类扩展,实现在一些快速的一步操作
 * @author lianghao
 * @date 2016年2月26日 下午3:02:04
 */
public class BaseController extends Controller {
    
   public <T extends Model<?>> T getBaseModel(Class<?> modelClass, String... removeParas) {
        T model = null;
        try {
            model = (T) modelClass.newInstance();
        } catch (Exception e) {
            logger.error("baseController 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,具体的实现可以根据自己的需求做封装,有了这个BaseModel增改就很方便了,扩展如下

public boolean save(Class<?> modelClass, String... keys){
      Model model = getBaseModel(modelClass, keys);
      return model.save();
}

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

这样就搞定了

使用篇

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

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

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

相关文章
|
21天前
|
监控 安全 调度
JFinal如何实现定时任务
JFinal如何实现定时任务
16 0
|
2月前
|
Java easyexcel
java开发excel导入导出工具类基于EasyExcel
java开发excel导入导出工具类基于EasyExcel
120 1
|
3月前
|
前端开发 Java 数据库连接
【Java实战篇】SpringBoot+MyBatis快速实现登录注册
【1月更文挑战第19天】【Java实战篇】SpringBoot+MyBatis快速实现登录注册
|
Java
MyBatisPlus(二)提供的CRUD功能
继承了BaseMapper<T>接口后,便可实现表的基础CRUD功能了,下面我们来看看具体内容。
105 0
|
存储 XML 缓存
Flowable基本使用介绍和Flowable数据库表解释
lowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。
4927 1
|
JavaScript 前端开发 Java
实体映射最强工具类:MapStruct 真香!
实体映射最强工具类:MapStruct 真香!
|
Java 数据库连接 数据库
【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例(1)
【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例
160 0
【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例(1)
|
Java 数据库连接
【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例(2)
【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例
229 0
【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例(2)
|
Java
Java神鬼莫测之Mybatis--增删改查CRUD以及批量操作(二)
Java神鬼莫测之Mybatis--增删改查CRUD以及批量操作(二)
130 0