上一節介紹了jfinal架構的簡單搭建,這節通過一個小例子了解jfinal的結構和特點
先上圖

1、建資料庫(我用的是oracle資料庫,其他的相對也差不多)
建立項目,我用的myeclipse,先把jar包導入
2、實體類
Classes.java
Student.java
什麼這是實體類?沒錯!!~ ActiveRecord 是 jfinal 最核心的組成部分之一,通過 ActiveRecord 來操作資料庫,将極大地減少代碼量,極大地提升開發效率,配置在後面,我這裡用的是Model,Model 是 ActiveRecord 中最重要的元件之一,它充當 MVC 模式中的 Model部分。
以上代碼中的 User 通過繼承 Model,便立即擁有的衆多友善的操作資料庫的方法。在 User 中聲明的 dao 靜态對象是為了友善查詢操作而定義的,該對象并不是必須的。 基于ActiveRecord 的 Model 無需定義屬性, 無需定義 getter、 setter方法,無需 XML 配置,無需 Annotation 配置,極大降低了代碼量。Model常見方法見官方API。
JFinal還有 獨創 Db + Record 模式,Db 類及其配套的 Record 類, 提供了在 Model 類之外更為豐富的資料庫操作功能。使用 Db 與 Record 類時,無需對資料庫表進行映射,Record 相當于一個通用的 Model。Db常見方法見官方API。
3、DemoConfig.java
我這裡是oracle資料庫的配置,oracle有些特别的地方,如表列名會自動轉成大寫,配置個免大小寫的工廠,友善開發等。這裡要注意url,驅動,方言,在給個mysql資料庫的配置對比下
4、StudentController.java
擷取studentid那裡有多種方法,這個要和前台傳參寫法一緻,Controller 提供了 getPara 系列方法,官網api裡很詳細
jfinal用的是原生态sql語句,簡單,友善,setAttr("studentList", list);把結果集放到request範圍裡,
jfinal也有直接擷取表單裡分裝成對象的方法 getModel(Student.class);就是,和struts2一樣,表單name對應上就可以了,非常友善
添加那裡對于oracle用序列維護studentid student.set("studentid", "mysequence.nextval").save(); jfinal有多種傳回方式,也可以傳回json資料,render 系列方法,官網api裡很詳細
5、interceptor和validator(可以不加)
StudentInterceptor.java
StudentValidator.java
6、頁面
我這裡用的是FreeMarker模闆引擎
index.html
index2.html
add.html
如何聯系我:【萬裡虎】www.bravetiger.cn
【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/