mongodb android, Android programming connection to MongoDB and basic operation examples such as adding, deleting, modifying and querying

The example of this article describes the basic operations of Android programming to connect to MongoDB and add, delete, modify, and query. Share for your reference, the details are as follows:

Introduction to MongoDB

Mongodb, a distributed document storage database, written in C++, aims to provide a scalable high-performance data storage solution for WEB applications. MongoDB is a high-performance, open source, schema-less document database, and it is one of the more popular NoSql databases. It can be used to replace traditional relational databases or key/value stores in many scenarios. Mongo is developed in C++.

Mongo installation reference

1) Download the installation package file and unzip it to a certain folder.

Official download address: http://www.mongodb.org/downloads

2) Configure environment variables: add the installation path after path.

3) Start the Mongo database:

Go to "cmd" -> type "mongod --dbpath D:\amp\MongoDBDATA"

D:\amp\MongoDBDATA indicates the database file storage path

4) Start the Mongo client:

mongo 127.0.0.1:27017/admin

Android connects to MongoDB

Step 1: Download and import the jar package into the project

Step 2: Install MongoDB on the PC (see MongoDB installation)

Step 3: Write code to connect to MongoDB for simple operations (add, delete, modify, check)

Code reference (Android side, also suitable for java and other projects)

1.  MongoDBUtil.java

package com.hills.happytest.utils;

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;

/**

* Class Name: MongoDBUtil.java

* Function:

* The Util that MongoDB Operate.

* Modifications:

*

* @author Gym Yung.

* @DateTime 2014-10-29 下午1:56:49

* @version 1.0

*/

public class MongoDBUtil {

static Mongo connection = null;

static DB db = null;

public MongoDBUtil(String dbName) throws Exception

{

connection = new Mongo("10.0.2.2:27017");

db = connection.getDB(dbName);

}

public static Mongo getConnection() {

return connection;

}

/**

* Create a blanket collection.

* @param collName :collection name.

*/

public void createCollection(String collName)

{

DBObject dbs = new BasicDBObject();

dbs.put("test", "test");

db.createCollection(collName, dbs);

}

/**

* Insert dbObject into collection.

* @param dbObject

* @param collName

*/

public void insert(DBObject dbObject,String collName)

{

DBCollection collection = db.getCollection(collName);

collection.insert(dbObject);

}

/**

* Insert dbObject list into collection.

* @param dbObjects

* @param collName

*/

public void insertBatch(List dbObjects,String collName)

{

DBCollection collection = db.getCollection(collName);

collection.insert(dbObjects);

}

/**

* Delete data By Id.

* @param id

* @param collName

* @return

*/

public int deleteById(String id,String collName)

{

DBCollection collection = db.getCollection(collName);

DBObject dbs = new BasicDBObject("_id", new ObjectId(id));

int counts = collection.remove(dbs).getN();

return counts;

}

/**

* Delete data By Condition.

* @param dbObject

* @param collName

* @return

*/

public int deleteByDbs(DBObject dbObject,String collName)

{

DBCollection collection = db.getCollection(collName);

int count = collection.remove(dbObject).getN();

return count;

}

/**

* Update Data.

* @param find

* @param update

* @param upsert

* @param multi

* @param collName

* @return

*/

public int update(DBObject find,DBObject update,boolean upsert,boolean multi,String collName)

{

DBCollection collection = db.getCollection(collName);

int count = collection.update(find, update, upsert, multi).getN();

return count;

}

/**

* Find Data With Page.

* @param ref

* @param keys

* @param start

* @param limit

* @param collName

* @return

*/

public DBCursor findWithPage(DBObject where,DBObject selection,int start,int limit,String collName)

{

DBCursor cursor = findNoPage(where, selection, collName);

return cursor.limit(limit).skip(start);

}

/**

* Find Data No Page.

* @param ref

* @param keys

* @param collName

* @return

*/

public DBCursor findNoPage(DBObject where,DBObject selection,String collName)

{

DBCollection collection = db.getCollection(collName);

DBCursor cursor = collection.find(where, selection);

return cursor;

}

}

2. MongoDBDao.java

package com.hills.happytest.utils;

import java.util.ArrayList;

import java.util.List;

import com.mongodb.BasicDBObject;

import com.mongodb.DBCursor;

import com.mongodb.DBObject;

/**

* Class Name: MongoDBDao.java

* Function:

* The Data Dao that MongoDB Operate.

* Modifications:

*

* @author Administrator

* @DateTime 2014-10-29 下午1:57:58

* @version 1.0

*/

public class MongoDBDao {

private static MongoDBUtil mongoDb;

// Init. MongoDBUtil.

static{

try {

mongoDb = new MongoDBUtil("test");

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* Test Create a blanket collection.

* @param collName :collection name.

*/

public void createCollectionTest(String collName)

{

mongoDb.createCollection(collName);

}

/**

* Test Insert dbObject into collection.

* @param collName Collection Name.

*/

public void insertTest(String collName)

{

DBObject dbs = new BasicDBObject();

dbs.put("name", "gymyung");

dbs.put("age", 20);

List books = new ArrayList();

books.add("EXTJS");

books.add("MONGDB");

books.add("JAVA");

dbs.put("books", books);

mongoDb.insert(dbs, collName);

}

/**

* Test Insert dbObject list into collection.

* @param collName Collection Name.

*/

public void insertBatchTest(String collName)

{

List dbObjects = new ArrayList();

DBObject jim2 = new BasicDBObject("name", "jim2");

DBObject liuting = new BasicDBObject();

liuting.put("name", "liuting");

liuting.put("age", "22");

dbObjects.add(jim2);

dbObjects.add(liuting);

mongoDb.insertBatch(dbObjects, collName);

}

/**

* Test Delete data By Id.

* @param collName Collection Name.

* @return Operate Result Code.

*/

public int deleteByIdTest(String collName)

{

int counts = mongoDb.deleteById("54507d19cbbd7a385c129ef5", collName);

return counts;

}

/**

* Test Delete data By Condition.

* @param collName Collection Name.

* @return Operate Result Code.

*/

public int deleteByDbsTest(String collName)

{

DBObject jim2 = new BasicDBObject("name", "jim2");

int count = mongoDb.deleteByDbs(jim2, collName);

return count;

}

/**

* Test Update Data.

* @param collName Collection Name.

* @return Operate Result Code.

*/

public int updateTest(String collName)

{

DBObject liuting = new BasicDBObject();

DBObject liuting2 = new BasicDBObject();

liuting2.put("$set", new BasicDBObject("gender", "female"));

int count = mongoDb.update(liuting, liuting2, false, true, collName);

return count;

}

/**

* Test Find Data With Page.

* @param collName Collection Name.

* @return String List Result.

*/

public List findWithPageTest(String collName)

{

DBCursor cursor = mongoDb.findWithPage(null, null, 0, 3, collName);

return convertCursorToList(cursor);

}

/**

* Test Find Data With Condition.

* @param collName Collection Name.

* @return String List Result.

*/

public List findWithConditionTest(String collName)

{

DBObject where = new BasicDBObject();

where.put("age", new BasicDBObject("$lte", 26));

where.put("gender", "female");

DBCursor cursor = mongoDb.findNoPage(where, null,collName);

return convertCursorToList(cursor);

}

/**

* Test Find Data No Page.

* @param collName Collection Name.

* @return String List Result.

*/

public List findNoPageTest(String collName)

{

DBObject keys = new BasicDBObject();

keys.put("_id", false);

keys.put("name", true);

keys.put("age", true);

DBCursor cursor = mongoDb.findNoPage(null, keys, collName);

return convertCursorToList(cursor);

}

/**

* Convert Cursor To List.

* @param cursor Required DBCursor.

* @return String List Result.

*/

private List convertCursorToList(DBCursor cursor)

{

List results = new ArrayList();

while(cursor.hasNext())

{

DBObject dbObject = cursor.next();

for(String key : dbObject.keySet())

{

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

}

}

return results;

}

}

3. TestActivity.java

package com.hills.happytest;

import java.util.List;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.os.AsyncTask;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import com.hills.happytest.utils.MongoDBDao;

import com.hills.happytest.utils.MongoDBUtil;

/**

* Class Name: TestActivity.java

* Function:

* Test MongoDB Operate on Android device.

* Modifications:

*

* @author Gym Yung.

* @DateTime 2014-10-29 下午1:53:40

* @version 1.0

*/

public class TestActivity extends Activity implements OnClickListener{

/************** Component in Layout. ***************/

private Button mongoTestBtn1;

private Button mongoTestBtn2;

private Button mongoTestBtn3;

private Button mongoTestBtn4;

private Button mongoTestBtn5;

private Button mongoTestBtn6;

private Button mongoTestBtn7;

private Button mongoTestBtn8;

// The Object use to MongoDB Operate.

private MongoDBDao mongoDbDao;

// The Collection Name in MongoDB.

private String collName = "androidDB";

/************** Operate Code ********************/

private final int CREATE_COLLECTION_TEST = 100;

private final int INSERT_TEST = 101;

private final int INSERT_BATCH_TEST = 102;

private final int DELETE_BY_ID_TEST = 103;

private final int DELETE_BY_DBS_TEST = 104;

private final int UPDATE_TEST = 105;

private final int FIND_WITH_PAGE_TEST = 106;

private final int FIND_NOPAGE_TEST = 107;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.mongodb_test);

findViewAndSetListener();

mongoDbDao = new MongoDBDao();

}

/**

* Function:

* Find View And Set Listener.

* @author Administrator

* @DateTime 2014-10-29 下午1:08:50

*/

private void findViewAndSetListener() {

mongoTestBtn1 = (Button) findViewById(R.id.mongodb_btn1);

mongoTestBtn2 = (Button) findViewById(R.id.mongodb_btn2);

mongoTestBtn3 = (Button) findViewById(R.id.mongodb_btn3);

mongoTestBtn4 = (Button) findViewById(R.id.mongodb_btn4);

mongoTestBtn5 = (Button) findViewById(R.id.mongodb_btn5);

mongoTestBtn6 = (Button) findViewById(R.id.mongodb_btn6);

mongoTestBtn7 = (Button) findViewById(R.id.mongodb_btn7);

mongoTestBtn8 = (Button) findViewById(R.id.mongodb_btn8);

mongoTestBtn1.setOnClickListener(this);

mongoTestBtn2.setOnClickListener(this);

mongoTestBtn3.setOnClickListener(this);

mongoTestBtn4.setOnClickListener(this);

mongoTestBtn5.setOnClickListener(this);

mongoTestBtn6.setOnClickListener(this);

mongoTestBtn7.setOnClickListener(this);

mongoTestBtn8.setOnClickListener(this);

}

@Override

public void onClick(View v) {

MyAsyncTast myAsyncTast = new MyAsyncTast();

switch(v.getId()){

case R.id.mongodb_btn1:

myAsyncTast.execute(CREATE_COLLECTION_TEST);

break;

case R.id.mongodb_btn2:

myAsyncTast.execute(INSERT_TEST);

break;

case R.id.mongodb_btn3:

myAsyncTast.execute(INSERT_BATCH_TEST);

break;

case R.id.mongodb_btn4:

myAsyncTast.execute(DELETE_BY_ID_TEST);

break;

case R.id.mongodb_btn5:

myAsyncTast.execute(DELETE_BY_DBS_TEST);

break;

case R.id.mongodb_btn6:

myAsyncTast.execute(UPDATE_TEST);

break;

case R.id.mongodb_btn7:

myAsyncTast.execute(FIND_WITH_PAGE_TEST);

break;

case R.id.mongodb_btn8:

myAsyncTast.execute(FIND_NOPAGE_TEST);

break;

}

}

/**

* Class Name: TestActivity.java

* Function:

* Execute Internet Task by Async...

* Modifications:

*

* @author Administrator

* @DateTime 2014-10-29 下午1:54:34

* @version 1.0

*/

class MyAsyncTast extends AsyncTask{

@Override

protected Object doInBackground(Object... params) {

Object result = null;

switch(Integer.parseInt(params[0].toString()))

{

case CREATE_COLLECTION_TEST:

mongoDbDao.createCollectionTest(collName);

break;

case INSERT_TEST:

mongoDbDao.insertTest(collName);

break;

case INSERT_BATCH_TEST:

mongoDbDao.insertBatchTest(collName);

break;

case DELETE_BY_ID_TEST:

result = mongoDbDao.deleteByIdTest(collName);

break;

case DELETE_BY_DBS_TEST:

result = mongoDbDao.deleteByDbsTest(collName);

break;

case UPDATE_TEST:

result = mongoDbDao.updateTest(collName);

break;

case FIND_WITH_PAGE_TEST:

result = mongoDbDao.findWithPageTest(collName);

break;

case FIND_NOPAGE_TEST:

result = mongoDbDao.findNoPageTest(collName);

break;

}

return result;

}

@SuppressWarnings("unchecked")

@Override

protected void onPostExecute(Object result) {

if(result instanceof Integer)

{

showDialogWithText("操作结果码:"+result.toString());

}else if(result instanceof List)

{

String resText = "";

for(String res : ((List) result))

{

resText += res + "\n";

}

showDialogWithText("操作结果\n:"+resText);

}

super.onPostExecute(result);

}

}

/**

* Function:

* Show Dialog With Text.

* @author Administrator

* @DateTime 2014-10-29 下午1:21:34

* @param text

*/

private void showDialogWithText(String text)

{

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("MongoDB操作结果");

builder.setMessage(text);

builder.setNeutralButton("确定", new DialogInterface.OnClickListener()

{

@Override

public void onClick(DialogInterface dialog, int which)

{

dialog.dismiss();

}

});

builder.create().show();

}

@Override

protected void onDestroy() {

// Close MongoDB Connection If It is Not Null.

if(MongoDBUtil.getConnection() != null)

{

MongoDBUtil.getConnection().close();

}

super.onDestroy();

}

}

4.  添加权限

希望本文所述对大家Android程序设计有所帮助。

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324219490&siteId=291194637