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);

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

相关文章
|
4月前
|
监控 安全 调度
JFinal如何实现定时任务
JFinal如何实现定时任务
128 0
|
6月前
|
SQL Java 关系型数据库
基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用
基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用
61 2
|
Java 数据库 Spring
Spring Boot入门(十八) 之 restfulCURD与普通curd的区别
Spring Boot入门(十八) 之 restfulCURD与普通curd的区别
|
存储 XML 缓存
Flowable基本使用介绍和Flowable数据库表解释
lowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。
5352 1
|
Java Maven
SpringBoot如何用easyPOI导出excel文件
在工作中,经常需要我们用Java代码导出一些数据,保存在Excel中。这是非常实用的Excel导出功能,如果我们用SpringBoot结合EasyPOI框架,可以非常方便地实现这个功能。
254 0
|
Java 数据库 Spring
SpringMVC02之CRUD和文件上传下载
SpringMVC02之CRUD和文件上传下载
|
JavaScript 前端开发 Java
实体映射最强工具类:MapStruct 真香!
实体映射最强工具类:MapStruct 真香!
|
Java 数据库连接
【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例(2)
【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例
249 0
【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例(2)
|
数据采集 安全 Java
SpringBoot集成Mybatis动态多数据源后,MybatisPlus的IPage失效的问题解决方案
SpringBoot集成Mybatis动态多数据源后,MybatisPlus的IPage失效的问题解决方案
560 0