马刺vs太阳西部决赛:Morphia一个nosql的ORM框架
来源:百度文库 编辑:九乡新闻网 时间:2024/05/11 18:53:54
Morphia一个nosql的ORM框架
- 博客分类:
- DataBase
官方API帮助文档及资料:http://code.google.com/p/morphia/w/list;http://api.mongodb.org/java/2.0/
近来在关注nosql,看了一个用c++写的MongoDB的实现。感觉还不错,就是代码风格不太符合java的。无意间看到了Morphia这个东西。(http://code.google.com/p/morphia/)。发现对MongoDB的api进行了封装,类似hibernate。如果使用过hinernate再使用它会上手很快。想使用它依赖的jar包:mongo-2.3.jar,morphia-0.97.1.jar,proxytoys-1.0.jar,asm.jar,cglib-2.1.3.jar。
首先对POJO进行注解配置。例子如下:
package domain;
import com.google.code.morphia.annotations.Entity;
import com.google.code.morphia.annotations.Id;
@Entity
public class Entry {
@Id
private String id;
private String name;
public Entry() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
编写dao层:
package dao;
import java.io.Serializable;
import com.google.code.morphia.DAO;
import com.google.code.morphia.Morphia;
import com.mongodb.Mongo;
import domain.Entry;
public class EntryDAO extends DAO
public EntryDAO(Morphia morphia, Mongo mongo) {
super(mongo, morphia, "entries");
}
}
泛型DAO设计,经典。
做个测试:
package test;
import java.net.UnknownHostException;
import java.util.List;
import com.google.code.morphia.Morphia;
import com.google.code.morphia.query.Query;
import com.google.code.morphia.query.QueryResults;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import dao.EntryDAO;
import domain.Entry;
public class MorphiaTest {
public static void main(String[] args) throws UnknownHostException,
MongoException {
Mongo mongo = new Mongo();
Morphia morphia = new Morphia();
EntryDAO dao = new EntryDAO(morphia, mongo);
/*for(int i=0;i<1000000;i++){
Entry entry = new Entry();
entry.setName("name"+i);
dao.save(entry);
}*/
QueryResults
Query
List
for (Entry entry : list) {
System.out.println(entry.getName());
}
//System.out.println(res.countAll());
/*for (Entry e : res) {
System.out.println(e.getId()+"---"+e.getName());
}*/
}
}
一次插入100000条数据大概5s,1000000大概是2m,当然这是一个简单的测试。没有参考标准。
从1000000查出来一个name1的数据,用时3 750ms。
- mongo-2.6.3.jar (241.7 KB)
- 下载次数: 2
- morphia-0.98.jar (243.2 KB)
- 下载次数: 2
- proxytoys-1.0.jar (100.7 KB)
- 下载次数: 2
- asm.jar (25.7 KB)
- 下载次数: 2
- cglib-2.1.3.jar (275.7 KB)
- 下载次数: 3
- nosql.rar (805.1 KB)
- 下载次数: 3
- MongoDB使用说明手册.rar (107.9 KB)
- 下载次数: 5
- mongodb学习手册.rar (1.1 MB)
- 下载次数: 9
- 查看图片附件
Morphia一个nosql的ORM框架
Mongodb 的ORM框架 Morphia 之 使用Morphia(映射对象)
PetaPoco:适用于.NET的微型ORM
MySQL与NoSQL——SQL与NoSQL的融合
选择合适的NoSQL存储系统
了解 NoSQL 的必读资料
一个PKM研究框架
什么是ORM
IPD的框架是什么
框架的神话
中国历史的新框架
从维权到谋利——农民上访行为逻辑变迁的一个解释框架
于建嵘:刚性稳定:中国社会形势的一个解释框架
于建嵘:刚性稳定:中国社会形势的一个解释框架
SPServer : 一个基于线程池(包括HAHS和LF)的高并发 server 框架
SiteMesh:一个优于Apache Tiles的Web页面布局、装饰框架
因果关系是更大框架中的一个特例
NOSQL存储的基于事件的事务实现
详解NoSQL数据库Apache Cassandra的配置_Apache_开发学院
关于NoSQL数据库你应该知道的10件事
【教程】野心勃勃的NoSQL新贵 MongoDB应用实战(1)
如何选择最适合你的NoSQL数据库
野心勃勃的NoSQL新贵 MongoDB应用实战(3)
国家课程标准的基本框架