java+maven和springboot访问mongodb

一、采用mongodb提供的接口进行访问

1. 添加依赖

<dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>3.8.2</version>
        </dependency>

        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>bson</artifactId>
            <version>3.8.2</version>
        </dependency>

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

2. 编写java代码

package com.ruoyi.quartz.task;


import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;


/**
 * 
 */
public class ImportMongoDBFromMySQL {

    public static void main(String[] args) {

        try {
            //连接MongoDB服务器,端口号为27017
            MongoClient mongoClient = new MongoClient("localhost", 27017);

            //连接数据库
            MongoDatabase mDatabase = mongoClient.getDatabase("box");  //test可选
            System.out.println("Connect to database successfully!");
            System.out.println("MongoDatabase inof is : "+mDatabase.getName());

            MongoCollection collection = mDatabase.getCollection("myTestCollection");

            Document document = new Document("_id", 1999)
                    .append("title", "MongoDB Insert Demo")
                    .append("description","database")
                    .append("likes", 30)
                    .append("by", "demo point")
                    .append("url", "http://c.biancheng.net/mongodb/");

            collection.insertOne(document);

        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
        }

    }
}

这里通过Document对需要写入的数据进行组织。

二、采用springboot内置方法访问

springboot内置了mongodb的访问组件,并且提供了两种访问方式,一种是MongoTemplate,另一种是MongoRepository。

1. 添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

由于springboot内置了mongodb的支持,所以这里不需要指定版本。 

2. application.yml配置

spring:
  data:
    mongodb:
      host: localhost
      port: 27017
      database: testdb
      auto-index-creation: true  

3. 通过MongoTemplate访问

@Autowired
private MongoTemplate mongoTemplate;



mongoTemplate.insert(temp);

可以看到,这里只需要声明自动注入 MongoTemplate,然后就可以进行mongodb的操作了。

4. 通过MongoRepository访问

import org.springframework.data.mongodb.repository.MongoRepository;


public interface BillMongodb extends MongoRepository<BillInfo, String> {

}


@Resource
private BillMongodb billMongodb;


billMongodb.save(bill);

这里首先需要定义一个继承了MongoRepository的接口,然后通过@Resource注解注入该接口,然后就可以通过该接口进行mongodb的操作了。

其中包括两个泛型参数,第一个参数是mongodb文档相对应的java对象,第二个参数是mongodb的collection名,默认情况下,和类名称一致。

5. java类中指定mongodb相关属性

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "billInfo")
public class BillInfo extends BaseEntity {

	@Id
	private String billId;

	@Indexed(unique = true)
	private String billNo;

}

其中@Indexed(unique = true)表示指定该属性建立唯一索引。@Id表示对应的字段作为主键,属性名称会被修改为_id。

写入数据类似:

{
    "_id": "178E5056D8074791992AFE7C19D8EA53",   
    "billNo": "104011024100075202011201341315055",
     ......    
}

可以看到,@Id标记的字段给修改为_id,作为文档的主键id了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值