歡迎您光臨本站 註冊首頁

jSqlBox 4.0.6 版更新,Java 資料庫 ORM 工具

←手機掃碼閱讀     admin @ 2020-04-15 , reply:0

jSqlBox是一個Java全功能資料庫持久層工具,主頁 https://gitee.com/drinkjava2/jsqlbox

jSqlBox主要特點是架構優、尺寸小、功能全,基本上所有與資料庫操作相關的功能,jSqlBox都已提供。它的主要特點有:  
1.核心基於DbUtils並與之相容。 
2.jSqlBox提倡在java裡拼寫SQL,獨創引數內嵌式SQL寫法, 任意DAO方法甚至ActiveRecord方法都可以混插SQl片段,例如:  
  new Demo().setName(""張三"").insert().putField("name", "李四").update(" and name=", ques("李四"), " and age> ",ques(20));
3.單個jar包,無須引入任何第三方庫即可實現宣告式事務、分庫分表和分散式事務 
4.ActiveRecord實體類可以只宣告介面,不佔用寶貴的單繼承
5.支援80多種資料庫方言的DDL生成、分頁、函式變換、實體原始碼生成
6.在低版本Java裡也可以存放並利用IDE定位多行SQL文字   
7.學習成本低,實體註解盡量相容JPA註解,不支援級聯、不支援隋性載入 。
jSqlBox的目標是做最好用的資料庫持久層工具,正如我喜歡給別的專案找缺點一樣,也歡迎大家來找jSqlBox的缺點。

本次更新是最近三次更新的匯總,最新版本為jsqlbox-4.0.6.jre8,有以下內容變更:
1. 從資料庫生成Java原始碼時,char(xx) 型別不再對映成單個Character字元型別, 而是對映成String型別.
2. DB類中增加一個靜態iPrepare方法以方便使用。
3. 新增一個SQL工具類,儲存了SQL關鍵字常量,以減少拼寫SQL的錯誤和去除字元引號,如字元" select " 可以用SQL.SELECT代替,例如以下SQL:
  User u=DB.eLoadBySQL(User.class, "select * from user_tb where user_id=", ques(3), " or user_name=", ques("other"));
   如果配合原始碼自動生成的列名常量,以及靜態引入的SQL常量,則可以寫成以下支援SQL重構的形式:
  User u=DB.eLoadBySQL(User.class, SELECT_STAR, FROM, User.TABLE_NAME, WHERE, User.ID, EQ, ques(3), OR, User.NAME, EQ, ques("other"));
   這種寫法相比與JOOQ之類的SQL工具來說,優點是秒懂、學習負擔輕,因為本質上jSqlBox就是在Java裡拼接SQL字元串。
4. DbContext和DB類中新增了一個eFindOneBySQL方法,這個方法如果沒有發現實體將會返回null, 而不是象eLoadBySQL方法一樣丟擲異常。
5. StrUtils工具類中增加了一個array方法,用於將陣列轉換寫成("abc", 12, 345)型別的字元串形式。
6. TableModelUtilsOfDb和TableModelUtilsOfJavaSrc中,改成用字元串常量的形式,並有功能調整,
7. 允許使用@Column(name="`xxx`") 的方式使用資料庫關鍵字作為列名,支援反單引號、雙引號、中括弧三種引用符,視不同的資料庫而定。使用資料庫關鍵字作為列名這種做法不推薦,通常只用於舊專案改造,新專案強烈不建議使用關鍵字作為列名。
8. TypeUtils中更正了實體不支援基本資料型別如int、short等型別的bug
9. 更正了@IdentityId註解在MySql下出錯的bug,這是BigInteger型別轉換有bug造成的
10. 更正了@Enumerated註解的欄位應該允許為null

以上更新內容感謝mr.fire同學提交pr和weishengbin同學提交issue!


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/114909/jsqlbox-4-0-6-released
jSqlBox 4.0.6 版更新,Java 資料庫 ORM 工具已經有271次圍觀

http://coctec.com/news/all/show-post-230251.html