版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】怎么在Android中连接MongoDB数据库
怎么在Android中连接MongoDB数据库?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。MongoDB简介Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo安装参考1)下载安装包文件,解压到某一文件夹下。官方下载地址:/downloads2)配置环境变量:在path后添加安装路径。3)启动Mongo数据库:进入“cmd”->键入“mongod--dbpathD:\amp\MongoDBDATA”D:\amp\MongoDBDATA表示数据库文件存储路径4)启动Mongo客户端:mongo:27017/adminAndroid连接MongoDB步骤1:下载并导入jar包到工程步骤2:安装MongoDB到PC端(参见MongoDB安装)步骤3:编写代码连接MongoDB实现简单操作(增删改查)代码参考(Android端,也适用于java等工程)1.
MongoDBUtil.javapackage
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(":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<DBObject>
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.javapackage
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<String>
books
=
new
ArrayList<String>();
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<DBObject>
dbObjects
=
new
ArrayList<DBObject>();
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<String>
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<String>
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<String>
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<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;
}
}3.TestActivity.javapackage
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<Object,
Object,
Object>{
@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)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年医疗废物行业发展分析及投资战略研究报告
- 2024-2030年动物营养用维生素行业市场现状供需分析及市场深度研究发展前景及规划投资研究报告
- 2024-2030年功能面粉行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2024-2030年剃须刀行业市场发展分析及发展趋势前景预测报告
- 2024-2030年分子光谱产品行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 测绘地理信息标准化与规范化
- 2024-2030年农用拖拉机行业行业市场发展分析及政策建议与策略研究报告
- 2024-2030年农业用具行业市场发展分析及前景趋势与投资战略研究报告
- 2024-2030年全球醛C8行业产销需求及未来发展趋势预测报告
- 2024-2030年全球及中国高空抛物检测系统应用前景与未来发展趋势预测研究报告
- 2023年高考全国卷2理科综合试题及答案
- 10000中国普通人名大全
- 《物流运作管理》医药物流模式运作分析课件
- 杨亮高考英语词汇
- 《钢铁是怎样炼成的》中考题目及答案
- 混凝土(梁板柱)浇筑施工方案
- 精密空调系统安装施工方案
- 最差小组检讨书的范文500字
- 注射用水系统再验证报告
- 虚拟现实VR技术-26张课件
- 小学英语外研新标准六年级上册(2022年新编)Module5M6U1
评论
0/150
提交评论