本次發佈增加了一個貼心功能,可以限制Mapper方法中的SQL長度,以避免過長SQL導致難以維護
- 配置屬性 MAPPER_SQL_MAX_LENGTH,限制Mapper中的SQL長度,默認不限制
- 代碼自動生成的ID使用@AssingID
無論是JAP,還是SpringData,還是MyBatis,還是BeetSQL,都支持Mapper中使用註解指明SQL語句,以BeetlSQL爲例子
@Sql("select * from user where dept_id=?")
List<User> selectByDept(Integer deptId);
@Template("select * from user where dept_id=#{deptId}")
List<User> selectByDept2(Integer deptId);
原則上應該儘量保持sql語句短小,過長的sql語句應該放到文件裏維護。BeetlSQL提供了一個運行時刻檢測sql語句長度,如果過長,則拒絕執行。
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetlsql</artifactId>
<version>3.2.8-RELEASE</version>
</dependency>
BeetlSQL 的目標是提供開發高效,維護高效,運行高效的數據庫訪問框架,以我20年在電信,金融以及互聯網天天CRUD的經驗總結得來的框架,適用範圍廣。目前支持的數據庫如下
- 傳統數據庫:MySQL,MariaDB,Oralce,Postgres,DB2,SQL Server,H2,SQLite,Derby,神通,達夢,華爲高斯,人大金倉,PolarDB 等
- 大數據:HBase,ClickHouse,Cassandar,Hive
- 物聯網時序數據庫:Machbase,TD-Engine,IotDB
- SQL查詢引擎:Drill,Presto,Druid
- 內存數據庫:ignite,CouchBase
事務支持本地和全局,以及Saga事務,也可以配合第三方事務管理器。