- 浏览: 2261959 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- FileNet相关 (3)
- 应用服务器相关 (22)
- Java综合 (77)
- 持久层 (24)
- struts (11)
- webservice (8)
- 虚拟机 (2)
- 光盘刻录 (0)
- AD及AD集群 (1)
- JS (33)
- F5 (0)
- loadrunner8.1 (0)
- Java 反编译工具 (2)
- DataBase (62)
- ant (1)
- 操作系统 (29)
- 我的任务 (3)
- 平台架构 (16)
- 业务规则引擎 (2)
- 模板 (1)
- EJB (5)
- spring (24)
- CMMI (1)
- 项目管理 (20)
- LDAP (13)
- JMS (10)
- JSP (19)
- JBPM (2)
- web MVC框架设计思想 (2)
- 第三方支付平台 (2)
- BUG管理工具 (1)
- 垃圾站 (2)
- php (1)
- swing (1)
- 书籍 (1)
- QQ qq (2)
- 移动互联网 (26)
- 爱听的歌曲 (0)
- hadoop (4)
- 数据库 (9)
- 设计模式 (1)
- 面试经验只谈 (1)
- 大数据 (9)
- sp (1)
- 缓存数据库 (8)
- storm (2)
- taobao (2)
- 分布式,高并发,大型互联网,负载均衡 (6)
- Apache Ignite (0)
- Docker & K8S (0)
最新评论
-
wangyudong:
新版本 Wisdom RESTClienthttps://gi ...
spring rest mvc使用RestTemplate调用 -
wangyudong:
很多API doc生成工具生成API文档需要引入第三方依赖,重 ...
spring rest mvc使用RestTemplate调用 -
zhaoshijie:
cfying 写道大侠,还是加载了两次,怎么解决啊?求。QQ: ...
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
xinglianxlxl:
对我有用,非常感谢
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
k_caesar:
多谢,学习了
利用maven的resources、filter和profile实现不同环境使用不同配置文件
关键字:Morphia一个nosql的ORM框架
官方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<Entry, Serializable> {
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<Entry> res=dao.find();
Query<Entry> q = dao.createQuery();
List<Entry> list=q.field("name").equal("name1").asList();
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。
[img][/img]
官方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<Entry, Serializable> {
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<Entry> res=dao.find();
Query<Entry> q = dao.createQuery();
List<Entry> list=q.field("name").equal("name1").asList();
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。
[img][/img]
- mongo-2.6.3.jar (241.7 KB)
- 下载次数: 163
- morphia-0.98.jar (243.2 KB)
- 下载次数: 185
- proxytoys-1.0.jar (100.7 KB)
- 下载次数: 142
- asm.jar (25.7 KB)
- 下载次数: 141
- cglib-2.1.3.jar (275.7 KB)
- 下载次数: 128
- nosql.rar (805.1 KB)
- 下载次数: 166
- MongoDB使用说明手册.rar (107.9 KB)
- 下载次数: 247
- mongodb学习手册.rar (1.1 MB)
- 下载次数: 269
- MongoDB.rar (7.5 MB)
- 下载次数: 160
发表评论
-
性能优化重要的mysql profile功能
2023-02-24 23:24 234关键字:性能优化重要的mysql profile功能 ... -
mysql源码解读之事务提交过程--第二篇
2018-01-10 15:03 519关键字:mysql源码解读 ... -
循环创建多张表 和 多个数据库sql语句(数据库水平分库分表时方便)
2016-03-04 12:58 12385关键字:循环创建多张 ... -
高可用、开源的Redis缓存集群方案
2015-04-16 12:25 3758推荐综合架构交流群:J ... -
Oracle实现类split函数的方
2015-04-16 10:10 642关键字:Oracle实现类split函数的方 项目里需要保存结 ... -
各种Nosql数据库系统对比及应用场景分析
2015-04-15 16:29 756关键字:各种Nosql数据库系统对比及应用场景分析 导读:Kr ... -
数据库迁移之从oracle 到 MySQL
2015-04-11 09:38 916关键字:数据库迁移之从oracle 到 MySQL 开场白: ... -
Mongodb命令大全
2015-03-18 11:18 803关键字:Mongodb命令大全 他支持的数据结构非常松散,是类 ... -
MongoDB中缩减Shard集群(删除一个Shard)--删除一个分片
2015-03-13 12:29 3641关键字:MongoDB中缩减Shard集群(删除一个Shard ... -
Mongodb副本集(三个节点:一主一从一仲裁)-配置文件方式启动
2015-03-05 17:32 2072关键字:Mongodb副本集(三个节点:一主一从一仲裁)-配置 ... -
win7 64位的数据源(ODBC)配置问题
2015-01-20 16:36 1078关键字:win7 64位的数据源(ODBC)配置问题 ... -
atomikos(com.atomikos.icatch.SysException: Error in init(): Log already in use)
2014-10-15 13:12 8528关键字:atomikos(com.atomikos.icatc ... -
Mysql高可用架构
2014-09-02 11:41 2801关键字:Mysql高可用架构 最近花了点时间研究了一下mys ... -
MySQL原生HA方案 – Fabric体验之旅
2014-08-21 13:13 7110关键字:MySQL原生HA方案 – Fabric体验之旅 ta ... -
性能优化重要的mysql profile功能
2014-02-10 15:25 51关键字:性能优化重要的mysql profile功能 my ... -
mysql profile功能
2014-02-10 15:12 24关键字:mysql profile功能 mysql的sql ... -
mybatis优化
2013-11-29 00:12 6456关键字:mybatis优化 1、每个bean都要有对应的g ... -
动态分库分表策略
2013-11-21 15:52 1351关键字:动态分库分表策略 参考网址:http://drag ... -
Windows 2008下如何配置Oracle ASM
2013-08-19 13:23 58800关键字:Windows 2008下如何配置Oracle ASM ... -
plsql 链接远程机器零配置
2013-07-17 12:06 3891关键字:plsql 链接远程机器零配置 打开plsql会弹 ...
相关推荐
Morphia一个nosql的ORM框架 对此二次封装
Morphia则是另一个与MongoDB集成的Java库,它通过对象关系映射(ORM)的方式,将Java对象映射到MongoDB的文档上。使用Morphia,开发者可以定义实体类,并使用`@Entity`注解指定对应的MongoDB集合。Morphia自动处理...
Morphia是Google开发的一个流行的MongoDB ORM框架,它提供了丰富的API和功能。GlacialMapper借鉴了Morphia的一些设计理念,如注解驱动的对象映射,但可能在某些方面进行了优化或创新,以满足特定需求或性能要求。 ...
JPA是Java EE规范,它定义了一个接口,允许开发者以面向对象的方式操作数据库,而Hibernate则是JPA的一个实现。通过ORM,开发者可以避免编写大量的SQL,提高代码的可读性和可维护性。 在PPT中,可能还涉及了事务...
Morphia是一个针对MongoDB的Java ORM(对象关系映射)工具,它简化了与MongoDB的交互,允许开发者将Java对象直接映射到MongoDB文档。在本案例中,我们有两个关键的数据模型:`RawDevStatus`和`AggregationDevStatus`...
7. **MJORM**:Mongo-Java-ORM(MJORM)是一个专门为MongoDB设计的Java ORM解决方案,它避免了过度依赖注解,解决了多项目间的兼容性问题。MJORM提供了一种更灵活的方式来映射Java对象到MongoDB文档,使得Java开发者...