不想寫sql?試試這款輕量級JAVA ORM框架!

Github導航站發表於2021-03-02

  大家好,我是為廣大程式設計師兄弟操碎了心的小編,每天推薦一個小工具/原始碼,裝滿你的收藏夾,每天分享一個小技巧,讓你輕鬆節省開發效率,實現不加班不熬夜不掉頭髮,是我的目標!

  今天小編推薦一款Java ORM框架——BeeBee 是一個簡單,易用,功能強大,開發速度快,編碼少的 JAVA ORM 框架。

  Bee開發速度快、簡單、自動高效且具有人工智慧(AI)特性!它的編碼複雜度是O(1),不管操作多少張表,都可以不需要寫額外的Dao程式碼。Bee同時支援物件導向和自定義SQL兩種方式,簡單場景和複雜場景都可以應用。

  Bee複雜查詢支援向物件方式,分頁查詢效能更高,一級快取即可支援個性化優化;具有分散式特性。高階要求,還可以方便自定義SQL語句。

  如果說Mybatis在Hibernate之後不是重複造輪子,那Bee在Hibernate和Mybatis之後也不會是重複造輪子!

功能特點

  • 1.介面簡單,使用方便。Suid介面中對應SQL語言的select,update,insert,delete操作提供4個同名方法。
  • 2.使用了Bee,你可以不用再另外編寫dao程式碼,直接呼叫Bee的api即可完成對DB的操作。
  • 3.約定優於配置:Javabean沒有註解,也不需要xml對映檔案,只是純的Javabean即可,甚至get,set方法不用也可以。
  • 4.智慧化自動過濾null和空字串,不用再寫判斷非空的程式碼。
  • 5.動態/任意組合查詢條件,不需要提前準備dao介面,有新的查詢需求也不用修改或新增介面。
  • 6.支援原生SQL排序, 原生語句分頁(不需要將全部資料查出來)。
  • 7.支援直接返回Json格式查詢結果; 鏈式程式設計。
  • 8.支援事務、for update,支援批處理操作,支援原生SQL(自定義sql語句),支援儲存過程。
  • 9.支援只查詢一部分欄位。
  • 10.支援物件導向方式複雜查詢、多表查詢(無n+1問題; 支援:一對一,一對多,多對一,多對多)。
  • 11.一級快取,概念簡單,功能強大;一級快取也可以像JVM一樣進行細粒度調優;智慧快取,支援更新配置表,不用重啟。
  • 12.表名與實體名、欄位名與屬性名對映預設提供多種實現,且支援自定義對映規則擴充套件。
  • 13.多種DB支援輕鬆擴充套件(MySQL,MariaDB,Oracle,H2,SQLite,PostgreSQL等直接可用)。
  • 14.無第三方外掛依賴;可零配置使用。
  • 15.提供表對應的Javabean自動生成工具,Javaweb後端程式碼根據模板自動生成;能列印非佔位符的可執行sql,方便除錯。
  • 16.支援讀寫分離一主多從, 僅分庫等多資料來源模式。
  • 17.分散式環境下生成連續單調遞增(在一個workerid內),全域性唯一數字id;提供自然簡單的分散式主鍵生成方式。
  • 18.支援同庫分表,動態表名對映。
  • 19.效能好:接近JDBC的速度;檔案小:Bee V1.8 jar 僅217k。

應用示例

import java.math.BigDecimal;
import java.util.List;
import org.teasoft.bee.osql.Suid;
import org.teasoft.honey.osql.core.BeeFactory;

/*
 * 查,改,增,刪 Suid (select,update,insert,delete)例項
 */
public class SuidExam {
	
	public static void main(String[] args) {

		Suid suid=BeeFactory.getHoneyFactory().getSuid();
		
		//需要先生成相應的Javabean
		Orders orders1=new Orders();
		orders1.setId(100001L);
		orders1.setName("Bee(ORM Framework)");
		
		//1:select查詢例項
		//預設不處理null和空字串.不用再寫一堆的判斷;其它有值的欄位全部自動作為過濾條件
		List<Orders> list1 =suid.select(orders1);  //select
		for (int i = 0; i < list1.size(); i++) {
			System.out.println(list1.get(i).toString());
		}
		
		//2:update更新例項
		orders1.setName("Bee--ORM Framework");
		//預設只更新需要更新的欄位. 過濾條件預設只用id欄位,其它需求可用SuidRich中的方法.
		int updateNum=suid.update(orders1);   //update
		System.out.println("update record:"+updateNum);
		
		Orders orders2=new Orders();
		orders2.setUserid("bee");
		orders2.setName("Bee(ORM Framework)");
		orders2.setTotal(new BigDecimal(91.99));
		orders2.setRemark("");  //empty String test
		
		//3:insert 插入例項
		int insertNum=suid.insert(orders2); //insert  		
		//預設不處理null和空字串.不用再寫一堆的判斷;其它有值的欄位全部自動插入資料庫中. 
		//方便結合DB插值,如id自動增長,由DB插入;createtime由DB預設插入
		System.out.println("insert record:"+insertNum);
		
		//4:delete 刪除例項
		//預設不處理null和空字串.不用再寫一堆的判斷;其它有值的欄位全部自動作為過濾條件
		//int deleteNum=suid.delete(orders2);   //delete
		//System.out.println("delete record:"+deleteNum);
	}
}

複製程式碼

結尾

  本期就分享到這裡,我是小編南風吹,專注分享好玩有趣、新奇、實用的開源專案及開發者工具、學習資源!希望能與大家共同學習交流,歡迎關注我的公眾號**【Github導航站】**。

相關文章