![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yN3EDOxYDMhFzNxEjNhZTMzYzX5QDN0kDM2AzLclDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
文章目錄
- 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);