JavaORM Bee 2.1 发布,NoSQL ORM,Mongodb ORM 支持地理信息插入查询、事务、索引创建

209 篇文章 0 订阅
9 篇文章 0 订阅

Mongodb ORM 工具,支持面向对象操作 Mongodb, 可以和其它关系型 DB 同用一套 Dao 代码,还支持分片.

NoSQL ORM, 支持 Mongodb, Cassandra.

Hibernate/MyBatis+ plus +Sharding JDBC + Jpa+ Spring data+ GraphQL+ App ORM (Android, 鸿蒙) +NoSQL ORM = Bee
要整合一堆的工具,还不如只用一个小巧又功能强大的工具。犹如 JAVA 界的数据源连接池 Hikari, 文件虽小,功能却不赖!

ORM Bee Sharding 分库分表就是那么简单,对开发透明,不影响业务,简单易用,文件小,性能好支持 Mongodb支持 JDBC,还支持 Android 和 Harmony;可以同时使用多种不同类型的数据库

Bee,互联网新时代的 Java ORM 工具,更快、更简单、更自动,开发速度快,运行快,更智能

Spring Boot 是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,
从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 可以帮助我们进行快速应用开发

最新功能介绍:

V2.1.4.5 (2023・荣耀)

23) 支持 Mongodb 地理信息插入、查询,包括分片
24) 支持 Mongodb 创建索引
25) 支持 Mongodb 事务

Bee V2.1.x 往期发布:

https://www.oschina.net/news/226875/bee-2-1-2-1-released

低代码 JavaORM Bee2.1 增加 Mongodb GridFS 文件支持,支持 SpringBoot - OSCHINA - 中文开源技术交流社区

https://www.oschina.net/news/231902/javaorm-bee-2-1-3-6

低代码微服务组合B ee+SpringBoot 让数据库分片更简单,还支持 Mongodb - OSCHINA - 中文开源技术交流社区

Mongodb ORM (Bee) 详细功能列表

代码实例

Mongodb 事务 (Mongodb 4.4+, 最好用 5.0+):

	public static void main(String[] args) {
		Transaction tran=new MongodbTransaction();
		try {
			tran.begin();
			SuidRich suidRich=BF.getSuidRichForMongodb();
			Customer customer=new Customer();
			customer.setFirstName("Test36");
			int aa=suidRich.insert(customer); 
			System.out.println(aa);
			int ii=1/0; //报异常,插入操作会回滚
			List<Customer> list=suidRich.select(new Customer());
			tran.commit();
			Printer.printList(list);
		} catch (RuntimeException e) {
			tran.rollback();
			e.printStackTrace();
		} 
		System.err.println("finished!");
	}

地理信息查询:


public class Places implements Serializable {

	private static final long serialVersionUID = 1596145310658L;

	@GenUUID
	private String id;
	private String name;
	@Geo2dsphere
	private Location location;
	private String category;

...//getter,setter

}



        Condition condition3=BF.getCondition();
		condition3.op("name", Op.likeLeft, "Park2"); //左匹配
		NearPara nearPara=new NearPara("location", -73.9667, 40.78, 5000D, 1000D);
		List<Places> list3=suidRichExt.near(places, nearPara,condition3);
		Printer.printList(list3);

下期功能预告:

Mongodb 原生 sql 也能直接执行了!

你还想添加什么功能,请到评论区告诉我们!

码云上的项目首页:

https://gitee.com/automvc/bee

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

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

mongodb-orm简介Mongodb ORM是基于javaORM框架,简化了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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值