nutz框架學習相關整理
1.簡要介紹
2.官網文件入眼相關
rk_cms 一套cms系統
nutzwk2.0 基於nutz的開源企業級開發框架
wzflow -- nutzwk1.0+工作流
3.**中的部分東西做的筆記部分:
1)主模組 任何乙個類都可以作為主模組,需要配置web.xml
@modules 宣告應用的所有子模組
@modules()
public class mainmodule {}
@iocby 設定應用所採用的ioc容器
@setupby 應用啟動以及關閉時的額外處理
@views 自定義的擴充套件檢視
@localization 應用的本地化字串設定
@ok 成功返回路徑 和structs的成功失敗返回的那個配置類似
@fail 失敗返回路徑
@iocby 配置載入器,包括js配置(如資料庫配置)json載入器,註解載入器
2)資料庫表操作
dao.create(person.class,false)//false表示該錶存在不刪除(類似hibernate的 create和update配置)
dao.drop(person.class)//刪除表
插入一條記錄返回id值
dao.insert(person)
插入記錄不返回id
dao.fastinsert(person)
插入一對多
dao.insertwith(t, "student");一方物件t多方student的list
查一條資料
person p=dao.fetch(person.class,"張三") @name註解
person p=dao.fetch(person.class,1)@id註解
dao.update(p) 更新
dao.update(list)更新集合
//查詢全部
dao.query(person.class, null);
//按照條件查詢
dao.query(person.class, ***.where("age", ">", "18"));
//分頁查詢
pager page = dao.createpager(2, 10);
dao.query(person.class, ***.where("age", ">", "18"), page);
//刪除一條資料(一般專案中都是邏輯刪除不物理刪除,作為學習了解)
dao.delete(person);//按照物件刪除
dao.delete(person.class, 1);//按照id刪除
dao.delete(person.class, "張三");//按照名字刪除
dao.delete(list);//刪除集合
//刪除表中所有資料
dao.clear(person.class);
//按照條件刪除資料
dao.clear(person.class, ***.where("age", ">", "18"));
3)setup介面 來實現其專案的初始化 比如做自動根據實體bean建立資料庫表 可從初始化中拿到ioc容器
mainmoudle 作為 配置檔案的載入點(類 註解的方式)@modules註解
annotationiocloader類 註解的載入器和 @iocby註解結合使用的
表結構自動遷移
(之前已經建立了user表,後在user實體裡新增了屬性,新增屬性需要在資料庫中建欄位則可用這波操作)
// 單個遷移
daos.migration(dao, user.class, true, false, false); // 新增欄位true,刪除欄位false,檢查索引false
// 批量遷移
daos.migration(dao, "net.wendal.nutzbook.bean", true, false, false);
攔截類註解 - @previnsert/@prevupdate@prevdelete
與@prev/@next不同, 這幾個註解不涉及sql操作,這是最大的區別!
因為不涉及到sql操作, 所以不影響批量操作,尤其是批量插入.
先舉個例子,生成uuid,說一下兩者的區別:
@name
@prev(els= // 使用dao.fastinsert(list)會出現name為null,因為@prev不執行
@previnsert(@el("uuid()"} // 使用dao.fastinsert(list)依然正常,@previnsert會執行
private string name; // 乙個欄位上不要同時寫@prev和@previnsert,上述示例只是為了說明功能
@prevupdate(now=true) // 執行update時,自動設定為當前時間
private date updatetime;
上述例子中,@previnsert可完美替代@prev, 實現批量插入,而且可以簡寫為@previnsert(uu32=true)
4)關於配置檔案properties
如何定義乙個別名
乙個ioc bean,通常只有乙個名字, 然而,在某些場景下,需要兩個名稱均指向同乙個bean.
例如nutzmore中的外掛程式,均以conf這個名稱取propertiesproxy的例項,而你的專案中已經定義為config,而且改起來麻煩, 那這個時候,你就需要按下面的方式,定義乙個影子bean了, 間接達到了別名的效果
var ioc =
},
// 建立別名
conf : ]
}
};
nutz框架的新增和刪除
插入版本,查出資料庫最新版本,建立新版本,在此基礎上加1 public programmehead createversion programmehead obj 設定版本建立日期 obj.setcreatetime new date 設定當前版本 obj.setversion versionmax...
nutz真的可以替代ssh框架嗎
最近經常有人給我來信詢問說他們最近正在研究nutz框架,說是用起來確實也比較迅速快捷,並且從一些文件 中也可以看出,nutz框架用的也算是穩定,那麼到底應不應該應用到具體的專案當中那?因為大家都不太想冒這個 險。其實今天我可以通過我的一些實踐經驗告訴大家,我不敢肯定nutz是否真的能夠代替ssh框架...
nutz使用技巧
json.fromjson class type,charsequence cs string json device class camera type status report uuid null system.out.println json nutmap devicestatusmap j...