Mongodb-ORM

基于Java的ORM框架
授权协议 GPL
开发语言 Java
所属分类 程序开发、 ORM/持久层框架
软件类型 开源软件
地区 国产
投 递 者 毛勇
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

mongodb-orm简介

  • Mongodb ORM是基于java的ORM框架,简化了SDK的使用,使代码变得更清晰、简单。 

  • 与Ibatis类似,将查询、执行语句封装在xml中,与代码隔离。简称MQL。 

项目中使用

加入mongodb orm的支持包

  • 1. 添加jar包或maven支持

<dependency>
    <groupId>com.mongodborm</groupId>
    <artifactId>mongodb-orm</artifactId>
    <version>0.0.1-RELEASE</version>
</dependency>
  • 2. 初始化mongodb templet

        spring中初始化

<bean id="mongoTemplet" class="com.mongodb.client.MongoClientTemplet">
    <property name="factory">
        <bean class="com.mongodb.client.MongoORMFactoryBean">
            <property name="dataSource">
                <bean class="com.mongodb.client.MongoDataSource">
                    <property name="nodeList" value="127.0.0.1:27017" />
                    <property name="dbName" value="your db name" />
                    <property name="userName" value="user name" />
                    <property name="passWord" value="password" /> <!-- 可使用默认值 --> <property name="connectionsPerHost" value="" />
                    <property name="threadsAllowedToBlock" value="" />
                    <property name="connectionTimeOut" value="" />
                    <property name="maxRetryTime" value="" />
                    <property name="socketTimeOut" value="" />
                </bean>
            </property>
            <property name="configLocations">
                <list>
                    <value>classpath:mql/mongo-mql.xml</value>
                </list>
            </property>
        </bean>
    </property>
</bean>

        代码初始化

    try {
      Resource resource =  new ClassPathResource("mongo-mql.xml");    
      MongoORMFactoryBean factory = new MongoORMFactoryBean();
      factory.setConfigLocations(new Resource[]{resource});
      factory.init();   
      MongoClientTemplet templet = new MongoClientTemplet();
      templet.setFactory(factory);
      templet.init();
    } catch(Exception e) {
      e.printStackTrace();
    }

编写MQL

  • Mapping

<mapping id="model" class="test.mongodborm.Model">
        <property column="_id" name="id" />
        <property column="name" name="name" />
        <property column="time" name="time" value="0" />
        <property column="status" name="status" />
</mapping>

<mapping id="extendModel" class="test.mongodborm.Model" extends="model">
    <property column="newProperty" name="newProperty" />
</mapping>
  •   select

<select id="queryModelList" collection="test_sample">
    <query class="java.lang.String">
        <property column="name" name="${value}" />
    </query>
    <field mapping="model" />
    <order>
        <property column="time" value="desc" />
    </order>
</select>
  •  update/findAndModify

<update id="updateModel" collection="test_sample">
    <query class="test.mongodborm.Model$Child">
        <property column="name" name="name" ignoreNull="true" />
        <property column="time" operate="gte" value="0" type="number" />
        <property column="status" operate="in">
            <list type="number">0,1</list>
        </property>
    </query>
    <action class="java.util.Map">
        <property column="name" name="name" operate="set" />
        <property column="status" operate="set" />
    </action>
</update>
  • 有嵌套的查询

<select id="queryModelList3" collection="test_sample">
    <query class="java.lang.String">
        <property column="_id" value="${value}" />
        <property column="time" value="0" type="number" />
    </query>
    <field class="java.util.Map">
        <property column="name" name="name" />
        <property column="parent" name="parent">
            <value class="test.mongodborm.Model$Parent">
                <property column="name" name="name" />
                <property column="child" name="child">
                    <value class="test.mongodborm.Model$Child">
                        <property column="name" name="name" />
                        <property column="time" name="time" value="0" />
                    </value>
                </property>
                <property column="data" name="data">
                    <value class="java.util.Map">
                        <property column="title" name="title" />
                        <property column="content" name="content" />
                    </value>
                </property>
            </value>
        </property>
        <property column="data" name="data">
            <value class="java.util.Map">
                <property column="title" name="title" />
                <property column="content" name="content" />
            </value>
        </property>
    </field>
    <order class="java.util.Map">
        <property column="time" name="time" value="desc" />
    </order>
</select>

Templet用法

Model model = mongoTemplet.findOne("queryModelList", "yuxiangping");

List<Model> list = mongoTemplet.findOne("queryModelList", "");

Model model = new Model();
model.setTime(1L);
Map<String, String> action = new HashMap<String, String>();
action.put("name", "yuxiangping-update");
int update = mongoT emplet.update("updateModel", model, action);

        更多的使用方法参见 sample.xml

  • 首先spring自带了mongodb的orm,spring data mongodb,但是这个框架非常难用,最令人抓狂的是每个文档都要带一个 _class 字段,因为这个是string的,所以占用不少空间,而且去除也比较麻烦。 在这里我推荐一下基于MongoDB官方提供的orm的轻量级封装的 zfoo orm 框架,只对官方提供的进行了简单的封装,还做了一些官方不支持的语法校验。 zfoo orm

  • 使用mongodb的java driver是件非常头疼的事。像当年写jdbc一样,拼写查询条件,结果集转换。业务逻辑里就出现了很多重复的代码使得项目整体变得臃肿。       这个框架的作者原文:“在网上找了一些开源的orm框架,包括Morphia。确实简化了很多代码,与driver的sdk也进行了隔离,不过用起来还是感觉不太方便,operater都封装成了方法,却没有覆盖所有的。还有就是还是跟d

  • 软件介绍 mongodb-orm简介Mongodb ORM是基于java的ORM框架,简化了SDK的使用,使代码变得更清晰、简单。 与Ibatis类似,将查询、执行语句封装在xml中,与代码隔离。简称MQL。 项目中使用 加入mongodb orm的支持包1. 添加jar包或maven支持 com.mongodborm mongodb-orm 0.0.1-RELEASE 2. 初始化mongodb

  • mongodb-orm简介Mongodb ORM是基于java的ORM框架,简化了SDK的使用,使代码变得更清晰、简单。 与Ibatis类似,将查询、执行语句封装在xml中,与代码隔离。简称MQL。 项目中使用 加入mongodb orm的支持包1. 添加jar包或maven支持 com.mongodborm mongodb-orm 0.0.1-RELEASE 2. 初始化mongodb temp

  • ## 介绍 `think-orm`是一个基于PHP`5.6+` 的`ORM`实现,主要特性包括: - 基于ThinkPHP5.1的`ORM`封装 - 支持`Mysql`/`Pgsql`/`Sqlite`/`SqlServer`/`Oracle`/`Mongodb` - 基于`PDO`实现 - 支持原生查询和查询构造器 - 支持事务 - 支持模型和关联(和ThinkPHP内置一致) 应该说功能特性和

  • Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库的互动。 每个数据库表会和一个对应的「模型」互动。 组件说明 业务侧还在用PHP5.3,composer.json文件内容如下:{ "require": { "illuminate/database": "4.1.*", "jenssegers/mongodb": "1.3.*" } } 实际

  • Laravel框架-使用多种数据库(mysql-orm和mongodb-odm)的时候如何解决事务处理问题? Laravel或者大部分web框架自带的是基于RDBS的DB组件和orm实现或者第三方的orm。 问题: 1)Laravel + MongoDB(laravel-mongodb),这个时候Nosql之类的数据库如何使用事务处理? 难道只能使用MongoDB官方的Perform Two Ph

  • 前言 在实际项目中,我们有时需要存储一些json类型的字符串,这种类型的数据写入到关系型数据库,会比较麻烦。一般我们将其写入到非关系型数据库中,例如MongoDB,同样我们也可以用操作关系型数据库的ORM方式操作MongoDB。 1: 配置文件的(settings.py) MONGODB_SETTINGS = [{'db': 'api_params', 'host': MONGO_DB, 'por

 相关资料
  • 问题内容: 我正在尝试从sqlalchemy(SQlite)迁移到使用mongodb。我想要架构验证。我看了看mongokit,但我想要一个类似于映射器的东西,这样它就可以从对象的属性中保存,而不是字典。 我想要一个映射器,这样我就可以使用现有对象而无需修改它们。 问题答案: 另一个选择是MongoEngine。MongoEngine的ORM与Django使用的ORM非常相似。 示例(来自教程):

  • 从戏剧!框架文档: Play2.0中没有内置的JPA实现;您可以选择任何可用的实现。例如,要使用Hibernate,只需将依赖项添加到项目中: 我的选择是什么而不是冬眠? 你认为什么最适合留言板网站? 我知道Hibernate有一点开销,对吗?

  • ORM(Object-relational mapping),对象关系映射。 是为了解决面向对象与关系型数据库存在的不匹配问题。 ORM框架的优点: 开发效率更高 数据访问更抽象、轻便 支持面向对象封装

  • 问题内容: 将Java ORM用于MongoDB的开销是多少?或者更好的是,我们在基本驱动程序级别进行读写? 我们将为我们的要求之一添加Mongo DB。 有对Java夫妇的Java ORM映射工具 -morphia -Spring数据 - 其他 Morphia的最新版本已于一年多以前发布, 但Spring数据得到了积极维护。如果我现在要开始使用哪一个, 问题答案: 使用ORM会降低性能,但会加快

  • 本文向大家介绍什么是 ORM 框架?相关面试题,主要包含被问及什么是 ORM 框架?时的应答技巧和注意事项,需要的朋友参考一下 ORM(Object Relation Mapping)对象关系映射,是把数据库中的关系数据映射成为程序中的对象。 使用 ORM 的优点:提高了开发效率降低了开发成本、开发更简单更对象化、可移植更强。

  • 大多数现代应用程序使用关系数据库来存储数据。 最近,许多供应商转而使用对象数据库来减轻数据维护的负担。 这意味着对象数据库或对象关系技术正在处理存储,检索,更新和维护。 此对象关系技术的核心部分是映射orm.xml文件。 由于xml不需要编译,因此我们可以轻松地对管理多个数据源进行更改。 对象关系映射 对象关系映射(ORM)简要介绍了什么是ORM以及它是如何工作的。 ORM是一种编程功能,可以将数