Memory超輕量級 Java 持久化工具
memory : 一個比dbutils更小巧、好用的的持久化工具。
從JDBC的規(guī)范上看,其對數(shù)據(jù)訪問層有相當簡潔的抽象:1、連接(connection) 2、語句(statement)、3結(jié)果集(result set),我們對數(shù)據(jù)庫做的事情無非:連接數(shù)據(jù)庫,執(zhí)行語句,拿到結(jié)果。因此,持久化工具的目的不言自明:進一步簡化連接的管理、語句的執(zhí)行、結(jié)果集提取等操作。
Memory在設計與實現(xiàn)上,都借鑒了Dbutils,其相對于hibernate,mybatis這些龐然大物,已經(jīng)是一個極其小巧的工具。 但是Memory的類和接口更少(不超過10個),體積更?。ㄖ挥卸畮譑),數(shù)目和體積都約為dbutils的1/3,卻添加了非常實用的功能:
-
將簡單的POJO對象直接持久化到數(shù)據(jù)庫中;
-
打印運行時出錯的SQL語句,其可以直接拷貝到數(shù)據(jù)庫客戶端上進行調(diào)試;
-
直截了當?shù)姆猪摬樵儭?/p>
代碼示例:
public static void testCrud() {
/**
* 創(chuàng)建一條記錄
*/
Product product = new Product();
product.setName("apple");
product.setStock(10);
product.setStatus(true);
product.setCreatedDate(new Date());
System.out.print("入庫之前Product沒有ID:");
System.out.println(product);
memory.create(Product.class, product);
/**
* 讀取這條記錄
*/
product = memory.read(Product.class, product.getId());
System.out.print("使用CRUD的read方法讀?。?);
System.out.println(product);
/**
* 換一種方式讀取
*/
product = memory.query("select * from product where id = ?",
new BeanHandler<Product>(Product.class), product.getId());
System.out.print("使用CQRS的query方法讀?。?);
System.out.println(product);
/**
* 更新這條記錄
*/
product.setStock(15);
product.setStatus(true);
product.setCreatedDate(new Date());
memory.update(Product.class, product);
// 查看結(jié)果
product = memory.read(Product.class, product.getId());
System.out.print("查看更新結(jié)果:");
System.out.println(product);
/**
* 刪除一條記錄
*/
memory.delete(Product.class, product.getId());
// 查看結(jié)果
product = memory.read(Product.class, product.getId());
System.out.print("查看刪除結(jié)果:");
System.out.println(product);
}評論
圖片
表情
