白给的咸鱼岸 2021-05-07 10:29 采纳率: 0%
浏览 21

android连接mongodb数据后查询报连接引起套接字异常

1.使用java语句连接服务器上的mongodb数据库,首先连接成功,几毫秒后因出现套接字异常被断开连接

这是日志显示的 

这是 mongdb的日志

确实有连接进来的日志显示

import java.util.List;
import java.util.ArrayList;
import java.util.List;
import org.bson.types.ObjectId;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
public class csdnconnect {


        static Mongo connection = null;
        static DB db = null;
        public void MongoDBUtil(String dbName) throws Exception
        {
            connection = new Mongo("47.114.149.208:27017");
            db = connection.getDB(dbName);
        }
        public static Mongo getConnection() {
            return connection;
        }
        public List<String> findd(String collName)
        {
            DBCollection collection = db.getCollection(collName);
            DBCursor cursor =collection.find();
            return  convertCursorToList(cursor);
        }
        private List<String> convertCursorToList(DBCursor cursor)
        {
            List<String> results = new ArrayList<String>();
            while(cursor.hasNext())
            {
                DBObject dbObject = cursor.next();

                for(String key : dbObject.keySet())
                {
                    results.add("{"+key+":"+dbObject.get(key)+"}");
                }
            }

            return results;
        }
}

这是 连接mongodb数据库的代码 包括连接和查询

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.view.View;
import java.util.List;

public class MainActivity extends AppCompatActivity  {
    private SensorManager sm;
    private Sensor mysensor;
    private StringBuffer sb = new StringBuffer();
    private csdnconnect db = new csdnconnect();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("wudi1");
        sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        try {
            db.MongoDBUtil("mycol");
            System.out.println("wudi2");
            db.getConnection();
            List<String> cursor=db.findd("mycol");
            System.out.println("wudi3");
            System.out.println(cursor);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 这是安卓代码mainactivity部分,数据库相关的只有try catch里面的内容,其实“wudi3”和cursor并没有输出

 

希望有大佬能帮我看看问题出在哪里

  • 写回答

5条回答 默认 最新

  • 关注

    socket连接网络异常,引起数据库中断。除了数据库操作,还有其他socket操作吗?

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料