Я очень новичок в 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);
}
}
Когда я запускаю это приложение и нажимаю кнопку отправки, оно автоматически останавливается. Хвае кто-нибудь, пожалуйста, помогите.
Спасибо. Но возможно ли подключить к этому процессу MLab?
Так не должно быть. Таким образом, многие из вас, кто внезапно решит добавить внешнюю базу данных в свое приложение, получат сообщение. Просто не делай этого. Почитайте и найдите много других источников, которые говорят вам то же самое.
Не делай этого. Вашему мобильному приложению не нужно напрямую связываться с базой данных. Вам нужен «промежуточный» API, который находится между вашим клиентом и самой базой данных. MLab предлагает REST API, есть и другие решения. Но даже не пытайтесь использовать Java-клиент прямо из вашего Android-приложения.