文档章节

springrain vs jfianl的开发对比

shang723
 shang723
发布于 2017/01/17 10:20
字数 692
阅读 32
收藏 0

废话不说,上实例

使用 jfinal最新版本 1.4 的 blog demo.

如果使用springrain 该怎么做呢?

总共分三步:

1.编写blog.sql 建表语句,花费2分钟左右时间

2.执行代码生成器,gen blog 并把生成文件拷贝到项目.
di_car/freemarker  对应拷贝到 springrain/WebROOT/WEB-INF/freemarker
di_car/js          对应拷贝到 springrain/WebROOT/js
di_car/src_main    对应拷贝到 springrain/src

3.执行权限语句,springrain使用shiro控制权限,需要导入菜单和按钮的url才能让admin正常访问.初始化的语句也已经生成,执行以下就可以了

以上3步,大概花费3分钟左右.就此blog管理功能已经全部实现,包括 列表字段排序,增删改查,导出,(ps:其实导入也已经做好了,我只是没有把使用方法写入文档)

界面截图如下,也可以访问 springrain.weicms.net 在线访问,国外免费主机,速度较慢......

-----------------我是小小分割线-----------------------------------------------------------

会有人说,生成的代码好维护吗?

代码自动生成了 controller,service,html页面,js文件

html页面都是原生的freemarker 文件,js也很少东西

service 不是强制的,可以直接使用baseDemoService,其实,只要你想,一个项目只需要一个service

controller 生成了 增删改查 导入 导出的处理方法

因为 save update delete 都是orm对象操作,和jfinal差别也不大

重点说下查询.springrain所有的sql语句都是通过Finder 工具类封装,finder承载了 sql语句和响应的参数,而且是强制行为,因为底层没有直接执行sql的接口.看下finder带来的方便和优势,就会明白这样设计的原因

springrain的sql语句 使用命名参数 没有使用?,在拼接?不太直观和方便,特别是在动态条件较多的时候.

查询列表 org.springrain.demo.service.impl.BlogServiceImpl.findListDataByFinder(Finder, Page, Class<T>, Object) 只有一句话  return super.findListDataByFinder(finder,page,clazz,o);

简单查询,父类已经完全封装好了.如果你想手动控制 代码就是

finder=new Finder("select * from blog where 1=1 ");
          //拼装动态where 条件,当然,你也可以手动拼装
          getFinderWhereByQueryBean(finder, o);
          //拼装 动态 order by ,用于列表字段排序
          getFinderOrderBy(finder, page);
          return super.queryForList(finder, clazz, page);

springrain的查询方法都可以返回 实体类或者map 根据需要自行选择使用

具体参见 基本接口

因为和jfinal理念不同,springrain 默认生成了service层,再强调一次,这个service不是必要的.可以直接使用baseDemoService

 

我们现在很快做出模型草稿,让用户确认,这些模型页面和代码就能直接转入开发阶段.

 

本文转载自:

shang723
粉丝 0
博文 11
码字总数 3320
作品 0
昌平
私信 提问
springrain vs jfianl的开发对比

废话不说,上实例 使用 jfinal最新版本 1.4 的 blog demo. 如果使用springrain 该怎么做呢? 总共分三步: 1.编写blog.sql 建表语句,花费2分钟左右时间 2.执行代码生成器,gen blog 并把生成文件...

光石头
2013/09/07
0
21
谈谈 jfinal 的优缺点

jfinal是国产优秀的web框架.jfinal短小精悍强大,易于使用.不过万事有度,省的太狠也不太好. 1.框架应该尽量兼容各种场景,因为你不知道以后的场景.框架是一个持续集成和更新的过程,对公司来说这...

光石头
2013/09/05
104.6K
81
spring的极简封装 - springrain

springrain,spring的极简封装. 5.0.0 项目入口是 springrain-system-web,基于Istio实现微服务,正在整理文档. 实现了什么? 不增加学习成本,像单体一样开发分布式微服务. 不修改业务代码,可以实...

光石头
2013/08/07
0
27
springrain 5.0.0 发布,无感知的微服务

5.0.0 项目入口是 springrain-system-web,基于Istio实现微服务,正在整理文档. 实现了什么? 不增加学习成本,像单体一样开发分布式微服务. 不修改业务代码,可以实现单体,分层,微服务多种部署模...

光石头
01/17
0
0
《跟我学Shiro》系列教程PDF完结版下载

Shiro目录 第一章 Shiro简介 第二章 身份验证 第三章 授权 第四章 INI配置 第五章 编码/加密 第六章 Realm及相关对象 第七章 与Web集成 第八章 拦截器机制 第九章 JSP标签 第十章 会话管理 ...

HenrySun
2016/10/09
141
0

没有更多内容

加载失败,请刷新页面

加载更多

Storm+Hbase广告实时统计

本文主要讲述使用Kafka+Strom+Hbase搭建的一套广告实时计算系统。其中服务器显示使用的是SpringBoot+Vue+ElementUI+EChats. 主要内容: 1.需求 2.日志格式 3.Hbase表格设计 4.编写Storm程序 ...

飓风2000
10分钟前
2
0
android,ContentProvider+ContentObserver+ContentResolver,用法。

这个是传智播客老师讲android开发时的一个图。 一、 PersonProvider继承ContentProvider,实现ContentProvider中的数据操作类。 ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起...

天王盖地虎626
16分钟前
2
0
解决markdown中的不换行问题

没有解决我的格式显示问题 https://blog.csdn.net/qq_23483671/article/details/79017609

南桥北木
21分钟前
2
0
产品上新|ZStack3.5.0正式发布啦!

海量产品资料传送门~ 一、ZStack全线产品下载通道汇总 社区版(免费): https://www.zstack.io/product/zstack_open_source/ 企业版下载: https://www.zstack.io/product/zstack_enterpris...

ZStack社区版
23分钟前
2
0
mysql 大表分页查询 翻页 优化方案

mysql分页查询是先查询出来所有数据,然后跳过offset,取limit条记录,造成了越往后的页数,查询时间越长 一般优化思路是转换offset,让offset尽可能的小,最好能每次查询都是第一页,也就是...

花树堆雪
27分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部