天天看點

JFinal入門

JFinal入門

文章目錄

  • ​​JFinal簡介​​
  • ​​JFinal特性​​
  • ​​JFinal使用​​
  • ​​JFinal詳細學習​​

JFinal簡介

JFinal 是基于Java 語言的極速 web 開發架構,其核心設計目标是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴充、Restful。在擁有Java語言所有優勢的同時再擁有ruby、python等動态語言的開發效率。

JFinal特性

  • MVC 架構,設計精巧,使用簡單
  • 遵循 COC 原則,零配置,無 xml
  • 獨創 Db + Record 模式,靈活便利
  • ActiveRecord 支援,使資料庫開發極緻快速
  • 自動加載修改後的 java 檔案,開發過程中無需重新開機 web server
  • AOP 支援,攔截器配置靈活,功能強大
  • Plugin 體系結構,擴充性強
  • 多視圖支援,支援 FreeMarker、JSP、Velocity
  • 強大的 Validator 後端校驗功能
  • 功能齊全,擁有 struts2 絕大部分核心功能
  • 體積小僅 303K,且無第三方依賴

JFinal使用

JFinal 中的Controller

Controller是JFinal核心類之一,該類作為MVC模式中的控制器。基于JFinal的Web應用的控制器需要繼承該類。Controller是定義Action方法的地點,是組織Action的一種方式,一個Controller可以包含多個Action。以下是代碼示例:

public class HelloController extends Controller {
public void index() {
renderText("此方法是一個action");
}
public void test() {
renderText("此方法是一個action");
}
}      

JFinal 中的Model

Model是ActiveRecord中最重要的元件之一,它充當MVC模式中的Model部分。以下是Model定義示例代碼:

public class User extends Model<User> {
public static final User dao= new User();
}      

以上代碼中的User通過繼承Model,便立即擁有的衆多友善的操作資料庫的方法。在User中聲明的dao靜态對象是為了友善查詢操作而定義的,該對象并不是必須的。基于ActiveRecord的Model無需定義屬性,無需定義getter、setter方法,無需XML配置,無需Annotation配置,極大降低了代碼量。

// 建立name屬性為James,age屬性為25的User對象并添加到資料庫
new User().set("name", "James").set("age", 25).save();
// 删除id值為25的User
User.dao.deleteById(25);
// 查詢id值為25的User将其name屬性改為James并更新到資料庫
User.dao.findById(25).set("name", "James").update();
// 查詢id值為25的user, 且僅僅取name與age兩個字段的值
User user = User.dao.findById(25, "name, age");
// 擷取user的name屬性
String userName = user.getStr("name");
// 擷取user的age屬性
Integer userAge = user.getInt("age");
// 查詢所有年齡大于18歲的user
List<User> users = User.dao.find("select * from user where age>18");
// 分頁查詢年齡大于18的user,目前頁号為1,每頁10個user
Page<User> userPage = User.dao.paginate(1, 10, "select *", "from user where age > ?", 18);      

JFinal詳細學習