超轻量级 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
60
0
VideoMemory, SystemMemory And AGPMemory

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

2012/03/09 14:08
11
0
Java内存泄漏管理

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

2013/12/27 09:11
20
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
22
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
c++ 内存模型

``` /* ENUM memory_order */ typedef enum memory_order { memory_order_relaxed, //没有同步和顺序一致性要求,只要求原子性,内存操作可能是乱序 memory_order_consume, memory_order_acq...

2014/06/26 11:32
11
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
16
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
110
0
Java内存模型(Java Memory Model)

The Java memory model specifies how the Java virtual machine works with the computer's memory (RAM). The Java virtual machine is a model of a whole computer so this model natura...

2018/07/24 14:45
4
0
查看进程的内存使用情况

使用adb shell cat /proc/pid/status或者adb pull /proc/pid/status可以查看一个进程的内存使用情况 VmPeak:Peak virtual memory usage VmSize:Current virtual memory usage VmLck:Current...

2013/01/27 10:15
709
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部