Подключение MongoDB к mlab в Android

Я очень новичок в android. Создание нового приложения для подключения приложения Android к MongoDB (mlab.com). Я успешно подключился к Java. Но в android я не понимаю, как это сделать. Я проверил без AsyncTask, но также получил ту же ошибку. Может ли кто-нибудь помочь!

Вот мой код

import com.mongodb.MongoClient;
import com.mongodb.MongoClientException;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {

    private ProgressDialog pDialog;

    EditText et1,et2,et3;
    Button b1;
    MongoClientURI uri = new MongoClientURI("mongodb://user:[email protected]:49309/mydb");

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    et1=(EditText) findViewById(R.id.nameText);
    et2 = (EditText) findViewById(R.id.emailText);
    et3 =(EditText) findViewById(R.id.mobText);
    b1=(Button) findViewById(R.id.button);

    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String name = et1.getText().toString();
            String email = et2.getText().toString();
            String mob = et3.getText().toString();
            InsertData(name,email);
        }
    });
}
public void InsertData(final String name, final String email) {

    class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... params) {
            try {
                MongoClient mongoClient = new MongoClient(uri);
                Toast.makeText(getApplicationContext(),"Coonected",Toast.LENGTH_LONG).show();
                MongoDatabase database = mongoClient.getDatabase("aghori");
                Toast.makeText(getApplicationContext(),"Dtabase connected",Toast.LENGTH_LONG).show();
                MongoCollection<Document> collection = database.getCollection("sampleCollection");


                // collection.insertOne(document);


            } catch (MongoClientException e) {

            }
            return "Data Inserted Successfully";
        }

        @RequiresApi(api = Build.VERSION_CODES.CUPCAKE)
        @Override
        protected void onPostExecute(String result) {

            super.onPostExecute(result);

            Toast.makeText(MainActivity.this, "Data Submit Successfully", Toast.LENGTH_LONG).show();

        }
    }

    SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();

    sendPostReqAsyncTask.execute(name, email);
}

}

Когда я запускаю это приложение и нажимаю кнопку отправки, оно автоматически останавливается. Хвае кто-нибудь, пожалуйста, помогите.

Не делай этого. Вашему мобильному приложению не нужно напрямую связываться с базой данных. Вам нужен «промежуточный» API, который находится между вашим клиентом и самой базой данных. MLab предлагает REST API, есть и другие решения. Но даже не пытайтесь использовать Java-клиент прямо из вашего Android-приложения.

Neil Lunn 21.04.2018 09:36

Спасибо. Но возможно ли подключить к этому процессу MLab?

Amalendu Kar 21.04.2018 10:14

Так не должно быть. Таким образом, многие из вас, кто внезапно решит добавить внешнюю базу данных в свое приложение, получат сообщение. Просто не делай этого. Почитайте и найдите много других источников, которые говорят вам то же самое.

Neil Lunn 21.04.2018 10:16
0
3
489
0

Другие вопросы по теме