標籤:mongodb freemarker
mongoDB和關係型資料庫的區別最大的好處就在於表結構的不對稱、弱事務,mongoDB犧牲了事務來換取更快的訪問速度,有人說mongoDB對於記憶體太貪婪了,其實也不見得,以windows版為例它會預設開啟100萬個可用串連數,搶不搶記憶體要經過實踐才能知道,以6核cpu為例mongoDB對記憶體的使用基本排不上號。雖然如此在驅動的提供這塊mongoDB的驅動差異很大。如2.10版本的驅動串連資料庫還可以使用Mongo但是後面的驅動卻沒有了Mongo,取而代之的則是MongoClient。mongoDB雖然和關聯式資料庫雖然有差異但是對資源的處理都是一樣的,下面分享一下我開發過程中遇到的問題。
1 使用freemarker顯示json資料的注意事項
struts2是很多公司的首選,但是使用struts2也存在很多限制,例如不能遍曆json.即使使用velocity也拿json資料沒轍。唯一的選擇也只有freemarker,可是使用freemarker也有一點弊端那就是單mongoDB裡面的資料如果是NULL類型,頁面就會報錯,針對這個情況唯一的解決辦法就是添加資料的時候進行資料有效性的校正
2 jsp使用freemarker的注意事項
jsp功能雖然強大,但是不支援freemarker,在jsp裡也不能使用freemarker的標籤,有時把jsp全部替換為ftl也不現實,針對這種情況就只能是把freemarker的tld引入進來在頁面上就使用<fm:template></fm:template>把freemarker的程式碼封裝裹起來
3 freemarker使用struts標籤的注意事項
freemarker也不能直接支援struts標籤,但是針對這種情況網上也提供瞭解決方法,如有需要可以直接百度
4 mongoDB注意事項
使用程式和mongoDB互動的時候很多網友給的建議真的可以說是誤人子弟,例如“使用mongoDB後可以不關閉資料庫連接”這種說法真的是大錯特錯,雖然沒見過windows版的mongoDB串連數被用完會成什麼樣,但是linux版本的如果串連數用完了,資料庫就會掛掉,這種問題就特別嚴重了,資料丟了不說還會造成很大的經濟損失。java程式建議的做法是先寫一個擷取串連和關閉串連的工具類,之後寫一個介面並聲明常用方法,之後寫實作類別和代理操作類。串連的建立、關閉由代理操作類來完成,之後寫一個工廠操作類進行統一的方法調用,這裡還給喜歡使用spring的程式員一個建議就是:不要把mongoDB和spring整合,這樣做真的沒有太多好處。
java使用mongoDB和freemarker的注意事項