成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nutz1.b.38發布實現Dao更快速的插入

數據庫
自 Nutz 1.b.37 發布以來,時隔近3個月。為什么間隔這么時間呢?因為我們做了很多重大的調整。

自 Nutz 1.b.37 發布以來,時隔近3個月。為什么間隔這么時間呢?因為我們做了很多重大的調整:

  1. 重構了 Dao -- 兌現了我們之前的承諾
  2. 重構了 EL
  3. Nutz 的源碼管理遷移到了 Github 上

以后,希望大家報 Issue 到 Nutz Github 的問題列表 中。Google Code 的問題列表還有66個 Issue 沒有處理,我們會在后續的版本中盡快修復。如果都修復了,我們就會關閉 Google Code 的問題列表,只維護 Github 的問題列表。

另外,如果你在 Github 上有帳號,歡迎隨時 fork Nutz,請記住我們的口號就是: 喜歡 Nutz,就 Fork 它

當然,Nutz 的下載地址仍然一直會是 Google Code 下載列表,并且 Nutz 在 Google Code 的項目主頁 也會一直維護。

同時,我想提醒大家注意一下 Nutz 的官網,我們會不斷的充實它的內容,比如最近做的

  1. Nutz 的文檔
  2. Nutz 的小白測試

說到小白測試,不得不提一下 Dao 重構。我們這次重構 Dao 后總是不放心,其實我們在今年 5 月初就重構完了,然后我們測試呀,測試,畢竟是重構 Dao 了嘛,但是我們還是不放心,于是又測試呀測試... 但是我們還是不放心...

于是 Juqkai 同學在我和 Wendal 的攛掇下痛下決心,寫了這個應用:

Nutz 小白測試計劃

我們希望這個計劃,能讓更多人方便的參與測試,提交測試結果,這樣我們就能為更多的人提供更穩定的 Jar 包。同時,我們也能更準確的統計貢獻者名單。

當然如果沒有人參與這個測試計劃,最差的結果就是維持現狀。令人欣慰的是,還是有4位同學(包括我)參加了1.b.38測試的小白測試

那么,讓我們看看,以后的版本參加的人是會越來越多,還是越來越少 ^_^!

Dao 兼容性問題

作為一篇發行注記,這次我們要上點干貨了

1.b.38 的 Dao 與之前的 Dao 使用上的主要區別

  1. 更快的批量操作 -- 比如大數據量的插入
  2. 提供了 Criteria 接口,擴展了 Condition 接口,這樣查詢的時候,可以用 PreparedStatement 參數
  3. 同時 Criteria 接口也非常方便你組織更復雜的 SQL 條件
  4. 自定義 SQL 可以設置 fetchSize,但是依然不能支持 pager,你還得自己用 SQL 方言來翻頁
  5. 重新設計的 Entity ,可以方便的擴展,這樣有些偏愛 JPA 或者配置文件的同學,可以擴展自己的實體配置方式
  6. 重新設計的 LOG,可以讓 SQL 打印的更清晰
  7. 你甚至可以 dao.insert 或者 dao.update 一個 Map
  8. 支持 dao.create/dao.drop 方式來建表和刪表
  9. org.nutz.dao.Dao 原有的接口函數統統保持不變,從而保證了兼容性不會有太大問題。

為了上述的優點,我們放棄了一點點兼容性,你的項目如果用 Nutz.1.b.38 可能需要少量修改幾行代碼。

Cnd 類的兼容問題

當然,如果你直接實現 Condition 接口也不會有問題。

  1. Cnd.exp 的返回值類型變成了 SqlExpression
  2. Cnd.exps 的返回值類型變成了 SqlExpressionGroup

Entity 接口的兼容問題

極個別很有 Hacking 精神的同學使用 Nutz 的時候,使用了 Entity 類,但是不幸的是現在 Entity 已經變成一個接口并且某些方法已經變了名字,但是原來 Entity 類所有的功能,現在 Entity 接口都能提供。如果你發現某些方法找不到了,耐心看看新的 Entity 接口的定義,我想你很快就能找到你要找的方法。

最重要的一個改變,就是原來的 entity.fields() 方法,變成了 entity.getMappingFields()。這個是有同學向我抱怨過,因此覺得有必要在這里特別提一下。

org.nutz.dao.tool 包的兼容問題

某些很有探索精神的同學可能偶然發現了 Nutz 還隱藏了一個 Dao 工具類的包,里面的方法可以跨數據庫的建表,所以很有可能在自己的項目里也這么應用了。但是不幸的是,1.b.38 之后,這個包沒了。因為我們不再需要它了。你的建表可以用:

Java代碼

 

  1. dao.create(Pet.classtrue);   // true 表示如果存在,先 DROP 掉再建, false 表示如果存在就不建了  

來完成。當然,刪表,可以用:

Java代碼

  1. dao.drop(Pet.class); 

除此之外,Nutz.Dao 不會有和之前不兼容的地方了。當然如果你發現了,請隨時告訴我們,應該都不是大問題。

EL 兼容性問題

EL 作為比較新的一個功能,可能用的人比較少,我們之后會再各個模塊里逐漸發掘 EL 的潛力。本次發布 EL 經過了重構,效率提升了將近1倍。當然,作為一個用反射實現的東東,它的還是很慢,但是我們設計 EL 的時候假定它的使用場景是配置文件,后臺進程等一些不是非常需要效率的地方。它可以讓你的程序更有彈性。如果非常需要效率的地方,恐怕它不是一個很好的選擇。

重構后的 EL,eval 的結果不再是 ElValue,而是普通的 Object,這樣,你使用的時候會更方便一些。

并且EL的預編譯,不再是

Java代碼

  1. BinObj exp = El.compile("3+4"); 

而是

Java代碼

  1. El exp = new El("3+4"); 

看起來更清爽一些不是嗎? Juqkai 同學的設計 ^_^

#p#

問題修復

Issue 34 dao: support JPA Annotation by zozoh

Issue 85 NutDao 中需要提供批量更新操作的方法. by ming300

Issue 121 Nutz是否有根據實體上的注解來自動創建數據庫表等對象的計劃? by hzzdong

Issue 137 數據庫操作是否可以增加對Blob類型的支持 by Toni.xutao

Issue 155 Dao 的 @Column注解可否標注在getter函數上 by jinghui70

Issue 192 NutDao性能問題:關于批量操作,使用PreparedStatement的Batch功能 by hzzdong

Issue 230 關于nutz dao能否動態根據tables.dod 更新表結構 by shao0707

Issue 267 NutzDao能否提供設置fetchSize的方法 by superxlm1985

Issue 294 Nutz Dao 大量數據插入效率問題 by fjayblue

Issue 332 sqlserver2005 nutz@google Junit測試 by haoyoushuai1986

Issue 416 建議nutz提供一個拼接復雜的查詢條件的方法 by liuxiaogang1987

Issue 420 Sqls.create語句中包含'@'會出錯。 by wangyingdong

Issue 426 Condition Cnd.where + orderBy by muyushi85

Issue 433 MVC的代碼覆蓋率實在太低,很多都沒測試用例! by wendal

Issue 437 SqlLiteral中的@過濾 by zhuyingxi

Issue 457 Json:增加字段映射方式 by wendal

Issue 458 ActionChainMakerConfiguration類名拼寫錯誤 by jentrees2008

Issue 466 使用MySQL數據庫,使用Nutz.dao的自定義SQL報錯 by mamacmm

Issue 469 Json.toJson 對char類型沒有加引號 by lwk0571

Issue 471 Dao: 添加對Hsql數據庫的支持 by wendal

Issue 473 使nutz兼容OSGi by windywany

Issue 478 1.b.38 的新 Dao 應該忽略 Column 不存在的情況 -- by Jay by zozoh

Issue 479 38 update 問題 by fjayblue

Issue 482 將Nutz打成jar, 2 個 Scans 的測試過不了 by zozoh

Issue 485 EL表達式引擎在某些情況下會出現錯誤 by ywjno.dev

Issue 487 ioc中某個屬性的值是Map時,如果是null偶爾報:String can not cast to java.util.Map by superhanliu

Issue 489 AnnotationIocLoader類對set方法處理@Inject 有bug by feiyan

Issue 490 38的Dao,在DB2下,使用@Column('abc')的話,insert會報錯 by wendal

Issue 493 Lang的str2number方法在某些情況下會出錯 by ywjno.dev

Issue 494 自定義SQL wiki by superhanliu

Issue 497 Nztz.Dao 注釋沒寫全,和注釋重寫 by hongchongyuan

Issue 500 nutz.Json 應擴展一下@JsonField注解 by conanca

質量

共通過了 697 個單元測試用例,代碼覆蓋率達到

Nutz.Dao 經測試在如下數據庫上可以工作正常

  1. H2
  2. SQLite
  3. MySql
  4. Oracle
  5. Postgresql
  6. SqlServer2005
  7. SqlServer2000
  8. DB2

回答新手的問題,我們現在只能根據印象草草統計,貢獻列表非常不完善。我們正在想辦法,爭取在不遠的將來,能記錄下來大家每一點一滴的付出 ^_^!

【編輯推薦】

  1. 大數據時代已來臨,你準備好了嗎?
  2. HBase數據庫性能調優
  3. 自己動手豐衣足食,DIY SQL字符串分解函數Split
  4. 秘籍:如何做中小企業BI項目規劃
  5. 說說SQL Server編年史
責任編輯:艾婧 來源: ITEYE
相關推薦

2012-02-15 10:07:02

JavaNutz

2020-11-01 16:14:27

PythonPyston v2.0

2011-06-21 15:07:46

2010-01-28 09:18:03

Scala 2.8

2011-08-24 09:03:55

PostgreSQL

2010-12-08 09:55:57

VirtualBox

2009-06-02 09:05:11

netbeans 6.netbeans下載netbeans發布

2012-04-16 15:18:15

JythonJVM

2015-12-01 15:30:34

Visual Stud發布

2012-04-05 15:47:51

JavaRichFaces

2011-05-05 09:17:41

Firefox 5.0

2012-03-19 10:04:06

JActorJava

2009-05-20 16:28:47

LinuxMusix2.0 Beta 1

2012-06-08 16:12:51

Ubuntu 12.1下載地址

2012-01-13 11:02:27

JavaWebOpenXava

2011-12-16 09:49:38

Java

2009-06-21 13:37:53

2011-11-02 17:08:48

OpenBSD發布

2009-09-27 13:41:55

Eclipse 3.5

2009-02-25 09:35:12

LinuxBASH 4.0OS X v10.4
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久国产精彩视频 | 亚洲精品国产综合区久久久久久久 | 北条麻妃视频在线观看 | 日日夜精品视频 | 久草青青草 | 一级在线 | 欧美色性 | 久久国产精品一区二区三区 | 国产一区二区三区在线视频 | 欧美寡妇偷汉性猛交 | 精品国产乱码久久久久久蜜臀 | 三级黄视频在线观看 | 日韩精品一区二区三区中文字幕 | 成人午夜视频在线观看 | 亚洲国产成人久久综合一区,久久久国产99 | 亚洲一二三视频 | 毛片av免费看 | 成人国产免费视频 | 亚洲精品在线视频 | 91精品久久久久久久久久 | 国产高清免费视频 | 欧美精品1区 | 成人免费视频网站在线看 | 波多野结衣电影一区 | 欧美一区二区免费在线 | 亚洲精品一区在线观看 | 97精品超碰一区二区三区 | 一区二区三区视频 | 97国产爽爽爽久久久 | 黄免费观看视频 | 刘亦菲国产毛片bd | 成人精品视频 | 久久久久国产精品免费免费搜索 | 亚洲乱码一区二区三区在线观看 | 日韩不卡一区二区 | 91视频一区二区 | av一区二区三区四区 | 国产成人精品一区二 | 精品亚洲一区二区三区四区五区 | 亚洲成年人免费网站 | 亚洲精品国产偷自在线观看 |