Mongodb ORM是基于java的ORM框架,简化了SDK的使用,使代码变得更清晰、简单。
与Ibatis类似,将查询、执行语句封装在xml中,与代码隔离。简称MQL。
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(); }
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>
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是一种编程功能,可以将数