MongoDB动态建表方案(官方原生驱动)

需求前提:表名动态,表结构静态,库固定

1.导入相关依赖

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.11.2</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>3.11.2</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-core</artifactId>
<version>3.11.2</version>
</dependency>

2.定义实体

@Data
public class Person {
private String name;
private int sex;
private String address;
}

3.设置实体解析器

    public static void addMongoDB(String collectionName) {
CodecRegistry pojoCodecRegistry = CodecRegistries.fromRegistries(MongoClientSettings.getDefaultCodecRegistry(), CodecRegistries.fromProviders(PojoCodecProvider.builder().automatic(true).build()));
MongoClient mongoClient = MongoClients.create("mongodb://admin:Tong#1234@168.1.121.4:15700");
//指定实体解析器
MongoDatabase mongoDatabase = mongoClient.getDatabase("marty_test").withCodecRegistry(pojoCodecRegistry);
MongoCollection<Person> mongoCollection = mongoDatabase.getCollection(collectionName, Person.class);
Person person = new Person();
person.setName("test");
person.setAddress("地址");
person.setSex(1);
mongoCollection.insertOne(person);
}

说明:Collection获取之后,第一次插入数据时,会自动创建,Database也类似

4.测试

public static void main(String[] args) throws Exception {
for (int i = 0; i < 10; i++) {
addMongoDB("test-" + i);
}
}

MongoDB动态建表方案(官方原生驱动)的更多相关文章

  1. Mybatis动态建表

    在网上查了很多,都说Mybatis不支持动态建表,心凉了一节.还好找到这么一篇,找到了希望:http://www.zzzyk.com/show/ec5660d9cf1071b3.htm 经过在mysq ...

  2. Oracle 存储过程动态建表

    动态sql,顾名思义就是动态执行的sql,也就是说在没执行之前是动态的拼接的. 任务 传入参数:新建的表名hd+当前的年和月,例如hd_201105表结构是:字段1:id ,类型是number,可以自 ...

  3. Django 动态建表

    #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Random_lee # -*- coding: utf-8 -*- from django ...

  4. Mysql + Mybatis动态建表

    service层业务 package com.zx.common.service.impl; import com.zx.common.entity.SysUser; import com.zx.co ...

  5. 菜鸟学SSH(十八)——Hibernate动态模型+JRebel实现动态创建表

    项目用的是SSH基础框架,当中有一些信息非常相似,但又不尽同样.假设每个建一个实体的话,那样实体会太多.假设分组抽象,然后继承,又不是特别有规律.鉴于这样的情况.就打算让用户自己配置要加入的字段,然后 ...

  6. MyBatis动态创建表

    转载请注明出处:https://www.cnblogs.com/Joanna-Yan/p/9187538.html 项目中业务需求的不同,有时候我们需要动态操作数据表(如:动态建表.操作表字段等).常 ...

  7. 适用于app.config与web.config的ConfigUtil读写工具类 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类) 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD) C# 实现AOP 的几种常见方式

    适用于app.config与web.config的ConfigUtil读写工具类   之前文章:<两种读写配置文件的方案(app.config与web.config通用)>,现在重新整理一 ...

  8. 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类)

    近期工作中有使用到 MongoDb作为日志持久化对象,需要实现对MongoDb的增.删.改.查,但由于MongoDb的版本比较新,是2.4以上版本的,网上已有的一些MongoDb Helper类都是基 ...

  9. 【ITOO 2】.NET 动态建库建表:使用SQL字符串拼接方式

    导读:在最近接手的项目(高效云平台)中,有一个需求是要当企业用户注册时,给其动态的新建一个库和表.刚开始接手的时候,是一点头绪都没有,然后查了一些资料,也问了问上一版本的师哥师姐,终于有了点头绪.目前 ...

随机推荐

  1. 关于node回调函数中同步和异步操作的理解

    1.node的回调函数:如果一个方法的参数是另一个函数的名字,则这个参数本身就要回调函数,这个函数就是回调函数 1).同步操作文件(阻塞I/O)      同步就是一个人干完这个再干那个--    所 ...

  2. 看完本文若不能让你学通“Python”,我将永远退出IT界

    学Python,切忌今天这学一点,明天那里学一点,零零散散没有系统的学习.这样不仅耽搁大家时间,久而久之也会消磨大家学习的兴致!这里给大家总结了一张系统的Python学习路线图!希望大家共勉! Pyt ...

  3. 如何发布代码到maven中心仓库

    deploy to sonatype 参考文章 https://blog.csdn.net/xuefu_78/article/details/52494698 https://blog.csdn.ne ...

  4. tf-tensorboard的一些注意事项

    tensorboard --logdir = 绝对路径 1.注意的是绝对路径里面不能有中文 2. tensorboard  文件应放在一个最小子目录中

  5. D. Concatenated Multiples 解析(思維)

    Codeforce 1029 D. Concatenated Multiples 解析(思維) 今天我們來看看CF1029D 題目連結 題目 給你一個序列\(a\)和一個數字\(k\),求有幾種ind ...

  6. MongoDB简介---MongoDB基础用法(一)

    Mongo MongoDB是一个基于分布式文件存储的数据库.MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB 将数据存储为一 ...

  7. ES & Filebeat 使用 Pipeline 处理日志中的 @timestamp

    使用 Pipeline 处理日志中的 @timestamp Filebeat 收集的日志发送到 ElasticSearch 后,会默认添加一个 @timestamp 字段作为时间戳用于检索,而日志中的 ...

  8. 【转】not found while looking for property错误

    原址:http://blog.csdn.net/y3wegy/article/details/7840813 最近在研究Hibernate.过程当中碰到了很多问题啊!其中一个就是not found w ...

  9. 微信小程序-游记分享(无后台)

    游记分享 博客班级 https://edu.cnblogs.com/campus/zjcsxy/SE2020 作业要求 https://edu.cnblogs.com/campus/zjcsxy/SE ...

  10. 【Spring Boot】web开发

    ​ springboot在开发web项目的时候具备天然的优势,现在的很多企业级开发都是依托于springboot的. ​ 使用springboot的步骤: ​ 1.创建一个SpringBoot应用,选 ...