超轻量级 Java 持久化工具 Memory

Apache
Java
跨平台
2015-05-17
时与光

JDBC的规范上看,其对数据访问层有相当简洁的抽象:1、连接(connection) 2、语句(statement)、3结果集(result set),我们对数据库做的事情无非:连接数据库,执行语句,拿到结果。因此,持久化工具的目的不言自明:进一步简化连接的管理、语句的执行、结果集提取等操作。

Memory在设计与实现上,都借鉴了Dbutils,其相对于hibernate,mybatis这些庞然大物,已经是一个极其小巧的工具。 但是Memory的类和接口更少(不超过10个),体积更小(只有二十几K),数目和体积都约为dbutils的1/3,却添加了非常实用的功能:

  • 将简单的POJO对象直接持久化到数据库中;

  • 打印运行时出错的SQL语句,其可以直接拷贝到数据库客户端上进行调试;

  • 直截了当的分页查询。

代码示例:

 public static void testCrud() {
     /**
     * 创建一条记录
     */
     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);
 }

详细可运行的例子,在这里可以看到和下载。

加载中

评论(18)

sp42
sp42
不错
OpenIoT
OpenIoT
.net下有没有类似的? #Memory#
小99
小99
真心不错 #Memory#
aspboy
aspboy
不错 #Memory#
nanber1
nanber1
好… #Memory#
朋也
朋也
支持,轻量级,用着都会觉得舒服 #Memory#
Tom-Lin
Tom-Lin
我觉得jfinal已经很好了,还有必要再搞一个吗? #Memory#
紫电清霜
紫电清霜
如果支持查询结果为map就更方便了,有时候不需要bean #Memory#
shijacky
shijacky
update 要传class,这个其实可以不要了,都有instance,难道还不知道class? #Memory#
魏曼奇
魏曼奇
postgresql,DB2,Sybase,SQL Server这些主流数据库要尽快支持 #Memory#

暂无资讯

4
回答
每个新线程可能需要多少配套内存???

今天看到篇博客提到以下内容: "在 Java™ 和 PHP 这类语言中,每个连接都会生成一个新线程,每个新线程可能需要 2 MB 的配套内存。在一个拥有 ...

2016/01/19 22:29

没有更多内容

加载失败,请刷新页面

没有更多内容

Java 内存分析 MAT 工具

Java 内存分析工具 学习

2015/12/07 23:20
58
0
Java内存泄漏管理

Java会有内存泄漏?绝对的,和流行观点不同,在Java程序中,内存管理依然是个问题。这篇文章描述了引起内存泄漏的原因,哪些情况需要额外注意,同时提出了解决这些问题的方法。

2013/12/27 09:11
19
0
浅谈Java内存泄漏问题

One of the most significant advantages of Java is its memory management. You simply create objects and Java Garbage Collector takes care of allocating and freeing memory. Howeve...

2016/12/16 15:08
20
0
HBase Block Cache的重要实现细节和In-Memory Cache的特点

注:本文基于HBase 0.94.1的源码进行分析。本文原文连接: http://blog.csdn.net/bluishglc/article/details/21516067,转载请著明出处! 每load一个block到cache时,都会检查当前cache的siz...

2014/10/12 11:40
15
0
Which one is faster: Java heap or native memory?

Which one is faster: Java heap or native memory? 11-29-2012 by Sergio Oliveira Jr. | 8 Comments One of the advantages of the Java language is that you do not need to deal with m...

2013/03/22 23:46
108
0
C++内存管理

C++内存管理

2015/11/11 22:32
164
0
Memory Management in C++

by Nathan C. Myers. Memory usage in C++ is as the sea come to land:a tide rolls in, and sweeps out again,leaving only puddles and stranded fish.At intervals, a wave crashes asho...

2014/04/24 10:29
161
0
记一次Redis内存诡异增长

一、现象 实例名:r-bp1cxxxxxxxxxd04(主从) 时间:2017-11-16 12:26~12:27 问题:一分钟内存上涨了2G,如下图所示: 键值规模:6000万左右 二、Redis内存分析 1.内存组成 上图中的内存统计的...

08/21 17:21
8
0
wordpress的内存使用检测插件:Server IP & Memory Usage Displa

=== Server IP & Memory Usage Display === Contributors: apasionados, nunsys Donate link: http://apasionados.es/ Author URI: http://apasionados.es/ Tags: memory, memory-limit, ip,...

2014/08/14 15:11
26
0
VideoMemory, SystemMemory And AGPMemory

原帖在下文,笔记: DxFlag: 像D3DUSAGE_DYNAMIC, D3DPOOL_DEFAULT, D3DPOOL_MANAGED, D3DPOOL_SYSTEMMEM这些都是给driver一些提示说我们想这样用这些资源(静态的,动态的。。。),到底...

2012/03/09 14:08
11
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部