java操作mysql数据库的代码我们已经了如指掌了,增删改查,java对mongodb数据库也是类似的操作,先是数据库连接,再是进行操作。
首先我们进入进入admin数据库,然后建立自己的数据库testMongoDb,进入admin数据库后,就可以直接进入testMongoDb,因为
用户可以进入系统的数据库,就是超级管理员,use
testMongoDb后,为该数据库设置用户名和密码,db.addUser('root','root'),这样我们在程序中连该数据库,并实现增删
改查,代码如下所示。
代码如下所示:
连接, 获取db, collection, 增加, 删除, 更新, 查询等基本操作
package
com.zhongsou.mongo;
import
java.net.UnknownHostException;
import
java.util.List;
import
java.util.Set;
import
org.junit.Test;
import
com.mongodb.BasicDBObject;
import
com.mongodb.DB;
import
com.mongodb.DBCollection;
import
com.mongodb.DBCursor;
import
com.mongodb.DBObject;
import
com.mongodb.DBTCPConnector;
import
com.mongodb.Mongo;
import
com.mongodb.WriteResult;
/**
* 对于mongon的测试
*
* @author Gaojie
*/
public
class
MongoDBTest {
Mongo m;
DBTCPConnector conn;
private
DB db;
@Test
public
void
testMongo()
throws
UnknownHostException {
String host =
"202.108.*.*"
;
m =
new
Mongo(host,
27017
);
// m.get
}
@Test
public
void
testConntect()
throws
Exception {
testMongo();
System.out.println(
"Mongo: "
+ m);
conn = m.getConnector();
System.out.println(
"DBTCPConnector: "
+ conn.getServerAddressList());
}
@Test
public
void
testDB()
throws
Exception {
testMongo();
testConntect();
// 获取admin的数据库
db = m.getDB(
"gaojie"
);
System.out.println(
"DB="
+ db);
boolean
auth = db.authenticate(
"root"
,
"123456"
.toCharArray());
System.out.println(
"auth="
+ auth);
}
@Test
public
void
testGetAll()
throws
Exception {
testDB();
// 获取db里面的collection(表)
Set<String> names = db.getCollectionNames();
for
(String name : names) {
System.out.println(
"CollectionName: "
+ name);
DBCollection coll = db.getCollection(name);
System.out.println(
"CollectionCount="
+ coll.count());
DBCursor cursor = coll.find();
while
(cursor.hasNext()) {
System.out.println(
"DBObject="
+ cursor.next());
}
List<DBObject> objs = coll.getIndexInfo();
for
(DBObject obj : objs) {
System.out.println(
"IndexInfo="
+ obj);
}
System.out.println(
"=============="
);
}
// 获取表结果
}
@Test
public
void
testCollection()
throws
Exception {
testDB();
if
(db.isAuthenticated()) {
for
(String coll : db.getCollectionNames()) {
System.out.println(
"collection="
+ coll);
}
}
}
@Test
public
void
testInsert()
throws
Exception {
testDB();
if
(db.isAuthenticated()) {
DBCollection coll = db.getCollection(
"test"
);
DBObject obj =
new
BasicDBObject();
obj.put(
"name"
,
"gaojie"
);
obj.put(
"age"
,
2403
);
obj.put(
"md5"
,
"546466sfsddfsd"
);
WriteResult wr = coll.insert(obj);
System.out.println(
"WriteResult="
+ wr);
}
}
@Test
public
void
testInsertObj()
throws
Exception {
testDB();
if
(db.isAuthenticated()) {
DBCollection coll = db.getCollection(
"test"
);
DBObject obj =
new
BasicDBObject();
obj.put(
"pepole"
,
new
User());
WriteResult wr = coll.insert(obj);
System.out.println(
"WriteResult="
+ wr);
}
}
@Test
public
void
testRemove()
throws
Exception {
testDB();
if
(db.isAuthenticated()) {
DBCollection coll = db.getCollection(
"test"
);
DBObject obj =
new
BasicDBObject();
// obj.put("name", "gaojie1");
obj.put(
"age"
,
110
);
System.out.println(
"WriteResult="
+ coll.remove(obj));
}
}
@Test
public
void
testUpdate()
throws
Exception {
testDB();
if
(db.isAuthenticated()) {
DBCollection coll = db.getCollection(
"test"
);
DBObject obj =
new
BasicDBObject();
obj.put(
"name"
,
"gaojie10"
);
obj.put(
"age"
,
110
);
DBObject upObj =
new
BasicDBObject();
upObj.put(
"name"
,
"gaojie10"
);
// upObj.put("age", 110);
System.out.println(
"WriteResult="
+ coll.update(obj, upObj));
}
}
@Test
public
void
testQuery()
throws
Exception {
testDB();
if
(db.isAuthenticated()) {
DBCollection coll = db.getCollection(
"test"
);
DBObject obj =
new
BasicDBObject();
// obj.put("name", "gaojie00");
obj.put(
"age"
,
110
);
DBCursor cursor = coll.find(obj);
while
(cursor.hasNext()) {
System.out.println(
"DBObject="
+ cursor.next());
}
}
}
}
转载请注明:学时网 » Java操作MongoDB的增删改查代码