springrain vs jfianl的開發對比

廢話不說,上實例html

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

若是使用springrain 該怎麼作呢?git

總共分三步:spring

1.編寫blog.sql 建表語句,花費2分鐘左右時間sql

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正常訪問.初始化的語句也已經生成,執行如下就能夠了url

以上3步,大概花費3分鐘左右.就此blog管理功能已經所有實現,包括 列表字段排序,增刪改查,導出,(ps:其實導入也已經作好了,我只是沒有把使用方法寫入文檔).net

界面截圖以下,也能夠訪問 springrain.weicms.net 在線訪問,國外免費主機,速度較慢......設計

-----------------我是小小分割線-----------------------------------------------------------code

會有人說,生成的代碼好維護嗎?

代碼自動生成了 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

 

咱們如今很快作出模型草稿,讓用戶確認,這些模型頁面和代碼就能直接轉入開發階段.

相關文章
相關標籤/搜索