实用小工具

实用小工具

java连接mongoDB

需导入的jar包:
在这里插入图片描述
jar包获取步骤: 打开maven仓库地址:maven仓库地址——》搜索需要的jar包名称——》进入所需要的jar包版本详情页点击jar包下载到本地

在这里插入图片描述

package cn.jdbc.mongodb;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.WriteConcern;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.bson.Document;

import java.io.UnsupportedEncodingException;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * Created by sunxiufang on 2022/2/10 13:45
 */
public class MyQueryTest implements JavaSamplerClient {

    private static MongoClient mongoClient;

    MongoCollection<Document> collection;

    @Override
    public void setupTest(JavaSamplerContext javaSamplerContext) {

         //   System.out.println("===============MongoDBUtil初始化========================");
            String ip = "testgdm.joinhealth.cn";
            int port =27017;
            mongoClient = new MongoClient(ip, port);
            // 大部分用户使用mongodb都在安全内网下,但如果将mongodb设为安全验证模式,就需要在客户端提供用户名和密码:
            // boolean auth = db.authenticate(myUserName, myPassword);
            MongoClientOptions.Builder options = new MongoClientOptions.Builder();
            options.cursorFinalizerEnabled(true);
            // options.autoConnectRetry(true);// 自动重连true
            // options.maxAutoConnectRetryTime(10); // the maximum auto connect retry time
            options.connectionsPerHost(300);// 连接池设置为300个连接,默认为100
            options.connectTimeout(30000);// 连接超时,推荐>3000毫秒
            options.maxWaitTime(5000); //
            options.socketTimeout(0);// 套接字超时时间,0无限制
            options.threadsAllowedToBlockForConnectionMultiplier(5000);// 线程队列数,如果连接线程排满了队列就会抛出“Out of semaphores to get db”错误。
            options.writeConcern(WriteConcern.SAFE);//
            options.build();


        /**
         * 获取collection对象 - 指定Collection
         */
        String dbName = "cdr";
        String collName = "testResult";
        collection = mongoClient.getDatabase(dbName).getCollection(collName);


    }

    @Override
    public SampleResult runTest(JavaSamplerContext javaSamplerContext) {

        SampleResult sampleResult = new SampleResult();
        sampleResult.setSampleLabel("query");   //请求名称
        sampleResult.sampleStart();   //请求开始


        String id = javaSamplerContext.getParameter("_id");

        /**
         * 根据id查询
         */
        Document docByid = null;

        //添加查询条件
        Document find = new Document("_id", id);

        //遍历集合
        FindIterable<Document> documents = collection.find(find);
        MongoCursor<Document> mongoCursor = documents.iterator();
        while (mongoCursor.hasNext()) {
            docByid = mongoCursor.next();
            System.out.println("根据ID查询的数据:"+(docByid));
        }

        String s = docByid.toJson();




        if(docByid.isEmpty()){
            sampleResult.setSuccessful(false);
        }else {
            sampleResult.setSuccessful(true);
            try {
                sampleResult.setResponseData(s.getBytes("UTF-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            System.out.println("success");
        }

        sampleResult.sampleEnd();
        return sampleResult;
    }

    @Override
    public void teardownTest(JavaSamplerContext javaSamplerContext) {

        /**
         * 关闭Mongodb
         */
        if (mongoClient != null) {
            mongoClient.close();
            mongoClient = null;
        }

    }

    @Override
    public Arguments getDefaultParameters() {
        Arguments arguments = new Arguments();
        arguments.addArgument("_id","joinhealth166,20170419G0030505911+100101+20170419G0030505");
        return arguments;
    }


    public static void main(String[] args) {
        MyQueryTest test = new MyQueryTest();
        Arguments arguments = test.getDefaultParameters();
        JavaSamplerContext context = new JavaSamplerContext(arguments);
        test.setupTest(context);
        test.runTest(context);
        test.teardownTest(context);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值