其他
memory : 超轻量级 Java 持久化工具
整理 | 叶子
一、软件介绍
memory : 一个比dbutils更小巧、好用的的持久化工具。
从JDBC的规范上看,其对数据访问层有相当简洁的抽象:1、连接(connection) 2、语句(statement)、3结果集(result set),我们对数据库做的事情无非:连接数据库,执行语句,拿到结果。因此,持久化工具的目的不言自明:进一步简化连接的管理、语句的执行、结果集提取等操作。
Memory在设计与实现上,都借鉴了Dbutils,其相对于hibernate,mybatis这些庞然大物,已经是一个极其小巧的工具。 但是Memory的类和接口更少(不超过10个),体积更小(只有二十几K),数目和体积都约为dbutils的1/3,却添加了非常实用的功能:
将简单的POJO对象直接持久化到数据库中;
打印运行时出错的SQL语句,其可以直接拷贝到数据库客户端上进行调试;
直截了当的分页查询。
二、项目地址
三、代码示例
/**
* 创建一条记录
*/
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);
// 查看结果
product = memory.read(Product.class, product.getId());
System.out.print("查看更新结果:");
System.out.println(product);
/**
* 删除一条记录
*/
memory.delete(Product.class, product.getId());
// 查看结果
product = memory.read(Product.class, product.getId());
System.out.print("查看删除结果:");
System.out.println(product);
}
往期推荐
2021-03-09
2021-03-05
2021-03-03
扫码关注最新动态
公众号ID:fosslab
我就知道你“在看”