nutz框架學習

2021-10-03 12:16:36 字數 4259 閱讀 8251

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...