JFinal一行代码搞定增删改,要的就是快
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一行代码搞定增删改,要的就是快相关推荐
- thinkjdbc 关闭_ThinkJD: ThinkJD,又名ThinkJDBC,一个强大的开源JDBC/ORM操作库,让你尽可能简洁地用一行代码搞定数据库操作。...
1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...
- html编辑ko,BootstrapTable+KnockoutJS相结合实现增删改查解决方案(三)两个Viewmodel搞定增删改查...
前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根本谈不上封装,仅仅是避免了html控件的取值和赋值,远远没有将MVVM的精妙展现出来.最近项目打 ...
- 开源作品ThinkJDBC—一行代码搞定数据库操作
1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...
- SDAutoLayout 一行代码搞定自动布局
SDAutoLayout(一行代码搞定自动布局!) QQ交流群:519489682(已满)497140713 ☆☆ SDAutoLayout 基础版视频教程:http://www.letv.com/p ...
- WPF使用Linq 一行代码搞定数据绑定
首先设置好DataGrid控件的相关属性,注意XAML代码文件中的列绑定要和源数据的列名一致,如: Binding="{Binding No}" 详细设置如下: this.data ...
- 成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!)
成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!) 目录 解决问题 解决思路 解决方法 解决问题 numpy.ndarray格式类型转数据为list格式数据 ...
- 一行代码搞定 Scrapy 随机 User-Agent 设置
摘要:爬虫过程中的反爬措施非常重要,其中设置随机 User-Agent 是一项重要的反爬措施,Scrapy 中设置随机 UA 的方式有很多种,有的复杂有的简单,本文就对这些方法进行汇总,提供一种只需要 ...
- 【Python】Autoviz: 一行代码搞定数据集探索并可视化
数据集各个特征有什么变化趋势.各个特征之间有何关系,我们可以借助Matplotlib.Seaborn等诸多工具来可视化展示,那么有没有一种工具能一次展示所有的关系了? 本文要介绍的Python工具Au ...
- 一行代码搞定 FTP 服务
环境搭建: python windows/linux pip install pyftpdlib (安装失败请到这里下载:https://pypi.python.org/pypi/pyftpdlib/ ...
最新文章
- web前端----jQuery属性操作
- mysql -p与密码之间不能有空格
- 商品规格可选怎么设计_两分钟前|开平木质地栈板怎么安装
- 用 Python 快速实现 HTTP 和 FTP 服务器
- linux抓post命令,Linux 使用curl发起post请求的4个常用方式
- 《linux c编程指南》学习手记4
- nginx 1.9.9 Linux 环境安装
- clipboard.js在弹出框中无法复制的问题
- java线程池饱和策略_干货:Java几种线程池的分析和使用。
- 【EOS】EOS环境基础
- Spring中定义Bean的6种方式(声明式+编程式)
- 强化学习过程中对产生的无效动作应该如何进行屏蔽处理?(强化学习中可变的动作空间怎么处理)
- Deepin15.8系统下安装QorIQ Linux SDK v2.0 yocto成功完美运行的随笔
- 给虚拟机添加虚拟磁盘时出现uuid already exists解决办法
- NVIDIA GPU的浮点计算能力
- ps导出gif+html,ps怎么导出gif格式的动图
- 赛舟-体验版 α测试调试方法
- 【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细)
- HTML select option 详解
- 丰田汽车音频总线AVC-LAN
热门文章
- kotlin设置按钮不可点击_全彩LED显示屏软件空点功能如何设置、使用?
- hzwap u.php_『THINKPHP』U 函数
- Linux系统和windows系统mysql5.7.32的下载
- 世界之窗如何保存html,世界之窗(文字版)
- python计算密集型提速_揭秘Numpy“高效使用哲学”,数值计算再提速10倍!
- linux上验证cudnn是否安装成功_Ubuntu 18.04安装CUDA(版本10.2)和cuDNN
- 在WSL下安装MYSQL的实验报告_Linux(wsl)安装docker和mysql主从搭建
- vue seo关键词设置_网站文章中如何设置关键词才更有利于SEO优化?
- python小白教程-面向小白的Python教程:入门篇(六)
- 安装2000数据库的时候挂起