Mongodb ORM(Bee)

205 篇文章 0 订阅
47 篇文章 0 订阅
Bee是一个ORM框架,适用于JavaWeb、Android和HarmonyOS,支持多种关系型和NoSQL数据库,如MongoDB。在Bee2.0及以上版本中,它提供了对MongoDB的支持和分片功能,包括面向对象的操作接口、DDL创建、分片查询等。然而,多表查询、事务和某些特定的分片操作目前尚未支持。用户可以通过设置库名直接执行分片操作。源码可在GitHub和Gitee上找到。
摘要由CSDN通过智能技术生成

Mongodb ORM(Bee)

Mongodb ORM 是Bee提供众多ORM功能的一部分;
Bee,互联网新时代的Java ORM框架,
同时支持JDBC(比如JavaWeb),Android和Harmony;
支持Sharding分片;
支持多种关系型数据库(MySQL,MariaDB,Oracle,H2,SQLite,PostgreSQL,SQL Server,Access,金仓,达梦等),
还支持NoSQL的Cassandra,Mongodb等.

Mongodb ORM-Function-List

Bee 2.0 起,开始支持MongoDB和分片.

Mongodb ORM(Bee)支持功能

Bee使用ORM面向对象方式操作Mongodb支持接口:
Suid
SuidRich
SuidRichExt/MongodbSuidRichExt
非分片情况下,以上四个接口的方法都适合在Mongodb使用.
兼容支持JDBC数据源(Mongodb JDBC)
分片支持:
DDL创建表 sharding分片查询:
查询聚合函数的分片
查询操作返回结果是List类型的分片(分片的select操作)
查询操作返回结果是List<String[]>类型的分片
查询操作返回结果是Json字符串类型的分片(selectJson的分片)
批量插入分片
分片键分片支持的运算符
=,in,between;其中in支持Number,List,Set
注意不参与分片:not in, not between,>=,<=
直接使用Mongodb shell命令操作DB (V2.1开发中)
创建索引 (V2.1开发中)

Mongodb ORM(Bee)(V2.0,V2.1)未支持功能:

多表查询MoreTable,PreparedSql.
广播表的更改;(可以自行多次设置库名并调用更改方法)
sharding分组
sharding分片更改操作中:单条插入,更新,删除的分片操作(可以自行多次设置库名并调用更改方法) 
事务

常识:

Mongodb与RDB的概念对应关系

Mongodb关系型数据库
集合(Collectioin)表(Table)
文档(Documnet)记录/一行记录(Record)

Mongodb ORM 查改增删(SUID)实例

Suid suid=BF.getSuid();

List<Orders> list1 =suid.select(orders1);  //select

int updateNum=suid.update(orders1);   //update

int insertNum=suid.insert(orders2); //insert

int deleteNum=suid.delete(orders2);   //delete

Bee框架图(V2.1最新版):

源码地址:

GitHub - automvc/bee: Bee is an AI, easy and high efficiency ORM framework,support JDBC,Cassandra,Mongodb,Sharding,Android,HarmonyOS.

https://gitee.com/automvc/bee

https://gitee.com/automvc/bee-springboot

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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();     }编写MQLMapping<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 标签:Mongodb

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值