2019独角兽企业重金招聘Python工程师标准>>>

一、拓展篇

首先需要重写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);

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

转载于:https://my.oschina.net/u/136848/blog/783582

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

  1. thinkjdbc 关闭_ThinkJD: ThinkJD,又名ThinkJDBC,一个强大的开源JDBC/ORM操作库,让你尽可能简洁地用一行代码搞定数据库操作。...

    1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...

  2. html编辑ko,BootstrapTable+KnockoutJS相结合实现增删改查解决方案(三)两个Viewmodel搞定增删改查...

    前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根本谈不上封装,仅仅是避免了html控件的取值和赋值,远远没有将MVVM的精妙展现出来.最近项目打 ...

  3. 开源作品ThinkJDBC—一行代码搞定数据库操作

    1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...

  4. SDAutoLayout 一行代码搞定自动布局

    SDAutoLayout(一行代码搞定自动布局!) QQ交流群:519489682(已满)497140713 ☆☆ SDAutoLayout 基础版视频教程:http://www.letv.com/p ...

  5. WPF使用Linq 一行代码搞定数据绑定

    首先设置好DataGrid控件的相关属性,注意XAML代码文件中的列绑定要和源数据的列名一致,如: Binding="{Binding No}" 详细设置如下: this.data ...

  6. 成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!)

    成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!) 目录 解决问题 解决思路 解决方法 解决问题 numpy.ndarray格式类型转数据为list格式数据 ...

  7. 一行代码搞定 Scrapy 随机 User-Agent 设置

    摘要:爬虫过程中的反爬措施非常重要,其中设置随机 User-Agent 是一项重要的反爬措施,Scrapy 中设置随机 UA 的方式有很多种,有的复杂有的简单,本文就对这些方法进行汇总,提供一种只需要 ...

  8. 【Python】Autoviz: 一行代码搞定数据集探索并可视化

    数据集各个特征有什么变化趋势.各个特征之间有何关系,我们可以借助Matplotlib.Seaborn等诸多工具来可视化展示,那么有没有一种工具能一次展示所有的关系了? 本文要介绍的Python工具Au ...

  9. 一行代码搞定 FTP 服务

    环境搭建: python windows/linux pip install pyftpdlib (安装失败请到这里下载:https://pypi.python.org/pypi/pyftpdlib/ ...

最新文章

  1. web前端----jQuery属性操作
  2. mysql -p与密码之间不能有空格
  3. 商品规格可选怎么设计_两分钟前|开平木质地栈板怎么安装
  4. 用 Python 快速实现 HTTP 和 FTP 服务器
  5. linux抓post命令,Linux 使用curl发起post请求的4个常用方式
  6. 《linux c编程指南》学习手记4
  7. nginx 1.9.9 Linux 环境安装
  8. clipboard.js在弹出框中无法复制的问题
  9. java线程池饱和策略_干货:Java几种线程池的分析和使用。
  10. 【EOS】EOS环境基础
  11. Spring中定义Bean的6种方式(声明式+编程式)
  12. 强化学习过程中对产生的无效动作应该如何进行屏蔽处理?(强化学习中可变的动作空间怎么处理)
  13. Deepin15.8系统下安装QorIQ Linux SDK v2.0 yocto成功完美运行的随笔
  14. 给虚拟机添加虚拟磁盘时出现uuid already exists解决办法
  15. NVIDIA GPU的浮点计算能力
  16. ps导出gif+html,ps怎么导出gif格式的动图
  17. 赛舟-体验版 α测试调试方法
  18. 【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细)
  19. HTML select option 详解
  20. 丰田汽车音频总线AVC-LAN

热门文章

  1. kotlin设置按钮不可点击_全彩LED显示屏软件空点功能如何设置、使用?
  2. hzwap u.php_『THINKPHP』U 函数
  3. Linux系统和windows系统mysql5.7.32的下载
  4. 世界之窗如何保存html,世界之窗(文字版)
  5. python计算密集型提速_揭秘Numpy“高效使用哲学”,数值计算再提速10倍!
  6. linux上验证cudnn是否安装成功_Ubuntu 18.04安装CUDA(版本10.2)和cuDNN
  7. 在WSL下安装MYSQL的实验报告_Linux(wsl)安装docker和mysql主从搭建
  8. vue seo关键词设置_网站文章中如何设置关键词才更有利于SEO优化?
  9. python小白教程-面向小白的Python教程:入门篇(六)
  10. 安装2000数据库的时候挂起