Bee 是一個ORM框架。關注省時/優雅、簡易、自動( Tea: Timesaving/Tasteful, Easy, Automatic) 特性。減小開發人員的編碼量,只爲一個目標--讓別人再也不叫咱們碼農!讓Bee成爲軟件工程師們手上耐人尋味的茶!品茶,品軟件!java
Bee比其它JAVA的ORM框架,類ORM框架要容易使用,容易上手。十分鐘便可學會使用。且對於不少增長的新需求不須要增長接口或更改sql配置文件。Bee的編碼複雜度爲O(1)。mysql
Bee已對外開源,開源地址:git
https://github.com/automvc/beegithub
Bee在碼雲的網址:
https://gitee.com/automvc/beesql
還提供了一個Eclipse工具的war工程:數據庫
https://github.com/automvc/bee-demo-war編程
如下爲詳細介紹:mvc
Bee
Bee 是一個 ORM框架.
Honey 是Bee的實現.
Bee 是一個具備省時/優雅、簡易、自動( Tea: Timesaving/Tasteful, Easy, Automatic) 風格的ORM框架.
Bee 網址:
https://github.com/automvc/bee
Honey 網址:
https://github.com/automvc/honey框架
Bee在gitee 的網址:
https://gitee.com/automvc/beemaven
環境要求
jdk1.7+
功能介紹:
V1.0
單表Suid(select,update,insert,delete)面向對象方式的操做,方法名與數據庫Suid操做對應.
自動經過DB的表或視圖生成Javabean(目前支持MySQL,MariaDB,其它數據庫有部分類型未作映射處理,客戶可經過在配置文件添加配置信息實現).
約定優於配置:Javabean沒有註解,沒有xml,只是純的Javabean便可(爲何要給Javabean那麼重的負擔呢??!!!).
自動映射表的列與的字段.
Javabean支持原生類型:int,double等.
使用PreparedStatement防止SQL注入攻擊.
Procedure存儲過程支持.
原生SQL支持.
批處理操做支持.
Transaction事務支持.
自動過濾null和空字符串(做爲默認實現).
SQL中函數:MAX,MIN,SUM,AVG,COUNT支持.
SQL中排序,分頁.
支持只查詢一部分字段.
動態/任意組合查詢條件,不須要提早準備dao接口,有新的查詢須要也不用添加和修改接口.
全部的suid操做都是用同一個bee接口,不用再定義任何新的dao接口,更不用實現dao接口.
用戶/開發者僅須要關注bee接口如何調用便可.
V1.1
Json格式結果支持.
Procedure存儲過程支持(CallableStatement.executeQuery).
V1.2
用戶自定義sql支持#{para}佔位參數設置,如:eg:name=#{name}; like查詢 支持:#{%para%},#{%para},#{para%}
V1.3
增長:select/update鏈式編程
V1.4
增長: selectById,deleteById
快速開始:
1. 引入Bee
1.1 maven工程,添加以下依賴
<dependency>
<groupId>org.teasoft</groupId>
<artifactId>bee</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>org.teasoft</groupId>
<artifactId>honey</artifactId>
<version>1.4.23</version>
</dependency>
1.2 也能夠直接下載jar文件
2. 建立數據庫和表
建立一個數據庫,默認名稱爲bee.
用bee.sql腳本建立一個表和插入初始化數據.
3. 更新數據庫的配置信息(在bee.properties)
bee.db.driverName = com.mysql.jdbc.Driver
bee.db.url =jdbc:mysql://localhost:3306/bee?characterEncoding=UTF-8
bee.db.username = root
bee.db.password =
4. 運行下面的 java代碼
import java.math.BigDecimal;
import java.util.List;
import org.teasoft.bee.osql.Suid;
import org.teasoft.honey.osql.core.BeeFactory;
import org.teasoft.honey.osql.example.entity.Orders;
/**
* @author Kingstar
* @since 1.0
*/
public class SuidExam {
public static void main(String[] args) {
Suid suid=BeeFactory.getHoneyFactory().getSuid();
Orders orders1=new Orders();
orders1.setId(100001L);
orders1.setName("Bee--ORM Framework");
//默認不處理null和空字符串.不用再寫一堆的判斷;其它有值的字段所有自動做爲過濾條件
List<Orders> list1 =suid.select(orders1); //select
for (int i = 0; i < list1.size(); i++) {
System.out.println(list1.get(i).toString());
}
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
//默認不處理null和空字符串.不用再寫一堆的判斷;其它有值的字段所有自動插入數據庫中.
//方便結合DB插值,如id自動增加,由DB插入;createtime由DB默認插入
int insertNum=suid.insert(orders2); //insert
System.out.println("insert record:"+insertNum);
//默認不處理null和空字符串.不用再寫一堆的判斷;其它有值的字段所有自動做爲過濾條件
// int deleteNum=suid.delete(orders2); //delete
// System.out.println("delete record:"+deleteNum);
List<Orders> list2 =suid.select(orders1); //select confirm the data
for (int i = 0; i < list2.size(); i++) {
System.out.println(list2.get(i).toString());
}
}
}
做者的電子郵箱email: honeysoft@126.com
若有任何相關建議,歡迎給做者發郵件,不勝感激!
同時,也歡迎你加入到Bee框架的開發之中,相信有你的加入,Bee會更加美好!