jfinal-dbxJFinal 數(shù)據(jù)庫(kù)模塊改進(jìn)
針對(duì)jfinal框架,在數(shù)據(jù)庫(kù)查詢的相關(guān)api上做了一些修改,增強(qiáng)易用性。
-
參數(shù)獲取
int id = getInt("id", 0); // 如果有id參數(shù)并且值為整數(shù)類型,則轉(zhuǎn)換為int類型,否則返回默認(rèn)值0 float price = getFloat("price", 0); long time = getLong("timestamp", 0L); String name = getString("name"); String sex = getString("sex", "^(male|female)$", "male"); -
分頁查詢的從句
Clause clause = Clause.compose(); clause.and("id in (*)", 1, 2, 3, 4); // 用*號(hào)代替需要指定確切數(shù)量的? clause.and("is_delete = ?", false); // 不再需要拼接又臭又長(zhǎng)的where語句 Sheet users = Db.paginate(pageIndex, pageSize, "select *", "from tb_users {WHERE} order by id desc", clause); -
簡(jiǎn)化參數(shù)化SQL查詢
// 使用*號(hào)代替需要指定確切數(shù)量的? Long count = Db.queryLong("select count(*) from table where id in (*)", 1, 2, 3, 4); -
數(shù)據(jù)格式化器,大大降低聯(lián)合查詢的復(fù)雜性,詳見樣例
-
字段內(nèi)容格式化
-
表聯(lián)結(jié)
-
字段組合(聯(lián)合計(jì)算或表聯(lián)結(jié))
-
WHY:為什么要弄個(gè)這東西?
首先當(dāng)然是為了偷懶啦
又臭又長(zhǎng)的SQL語句,完全沒有可讀性
繁復(fù)的表與表間的join,性能堪憂啊
構(gòu)建復(fù)雜結(jié)構(gòu)的json輸出,很麻煩啊
輪子要重復(fù)的造,體力活不要重復(fù)的做
HOW:這東西怎么使
-
添加依賴庫(kù)
-
構(gòu)建得到j(luò)ar或直接添加.java文件到項(xiàng)目中
-
看看樣例Sample.java
SAMPLE:樣例
-
測(cè)試表結(jié)構(gòu)及數(shù)據(jù)
-
tb_users 用戶表
id name sex reg_time province_id 1 zhangsan 1 1445218698 1 2 lisi 1 1444749270 3 3 lilan 0 1444809300 4 4 huamulan 0 1443941012 7
-
tb_friends 好友信息表
id user_id friend_id 1 1 2 2 1 3 3 2 3 4 2 4 5 3 1 6 4 1
-
tb_provinces 省份信息表
id name 1 beijing 2 tianjing 3 shanghai 4 chongqing 5 shanxi 6 shandong 7 hebei 8 henan 9 hunan 10 hubei
-
-
測(cè)試代碼:Test.java
-
測(cè)試代碼的輸出JSON
[ { "test": "2:lisi", "province_id": 3, "sex": true, "name": "lisi", "id": 2, "friends": [ { "friend_name": "lilan", "friend_id": 3, "user_id": 2, "id": 3 }, { "friend_name": "huamulan", "friend_id": 4, "user_id": 2, "id": 4 } ], "fmt_reg_time": "2015-10-13 23:14" } ]
TIPS:最佳實(shí)踐
整一大堆常用的Formattable,你值得擁有
評(píng)論
圖片
表情
