hydrogen-dao數(shù)據(jù)庫操作工具
(本項(xiàng)目終止開發(fā),因?yàn)楝F(xiàn)在 MyBatis 配合 SpringBoot 使用已經(jīng)全程免配置,其易用性已經(jīng)達(dá)到作者本人的期望。)
hydrogen-dao 是一個(gè)輕量級(jí)的 JDBC 數(shù)據(jù)庫操作工具,專注于簡化數(shù)據(jù)庫的連接管理 SQL 執(zhí)行。其主要功能有:
-
連接池管理,狀態(tài)查看;
-
跨數(shù)據(jù)庫的事務(wù);
-
根據(jù)查詢參數(shù)來動(dòng)態(tài)組裝 select/insert/update/delete 語句,免除大量的 if-else;
-
簡化分頁查詢和批處理。
下面是一個(gè)例子:
// 簡單查詢 Listusers = dao.query("select * from users where id in(?,?,?)", 1,2,3); // 查詢結(jié)果包裝成 Pojo List
users = dao.query(User.class, "select * from users where id in(?,?,?)", 1,2,3); // 動(dòng)態(tài)組裝條件 List users = dao.query(SQL .Select("ID", "NAME", "ROLE") .From("USERS") .Where(username != null, "NAME=?", username) // 僅當(dāng)變量 username 不為 null 時(shí)才會(huì)包含該查詢條件 .And(role != null, "ROLE in ?", roles) // 這里的 roles 變量可以是數(shù)組或 List ); // 分頁查詢 String sql = "select * from users where name like ?"; int pageSize = 10; // 頁大小 int pageIndex = 2; // 頁號(hào),0 表示第一頁 Page
page = dao.queryPage(User.class, sql, pageSize, pageIndex, "Adm%"); System.out.println("Total count: " + page.getTotal()); // 要獲取總記錄數(shù),實(shí)際上查詢了兩次 for (User user: page) { System.out.println(user); }
hydrogen-dao 是一個(gè) Java 的輕量級(jí)的數(shù)據(jù)庫訪問庫,依賴標(biāo)準(zhǔn)的 JDBC 接口。下面是一個(gè)使用例子:
查詢記錄
DAO dao = getDAO();ListuserList = dao.query( User.class, // 包裝類 "select * from USER where NAME like ? and ROLE=?", // 語句 "admin%", 3); // 參數(shù)for (User user: userList) { System.out.println("user name: " + user.getName());}
執(zhí)行事務(wù)
final DAO dao = getDAO();DAO.runTransactionWithException(new Runnable() { // 所有事務(wù)都以 Runnable 的方式執(zhí)行,簡單明了
public void run() {
dao.execute("insert into USER(id,name) values(?,?)", 1, "user1");
throw new Exception(); // 之前的 insert 將會(huì)回滾,同時(shí)異常拋出
}});
使用方法參考 WIKI。
評(píng)論
圖片
表情
