/**
* @Author: Administrator
* @Date: 10:25 2017/10/16
* @Description: java链接mongodb数据库
*/
public class MongodbJdbc {
public static void main(String[] args){
try {
//连接mongodb服务,如果是远程连接替换"localhost"为服务器的IP的地址
//ServerAddress()两个参数分别为:1.服务器的地址 2.端口号
ServerAddress serverAddress = new ServerAddress("localhost", 27017);
//为了通过认证连接数据库
ArrayList<ServerAddress> addresses = new ArrayList<ServerAddress>();
addresses.add(serverAddress);
//MongoCredential.createScramSha1Credential()三个参数分别为 1.用户名 1.数据库名称 3.密码
MongoCredential credential = MongoCredential.createScramSha1Credential("MongoDB", "chen", "".toCharArray());
//为了通过认证连接数据库
ArrayList<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
//通过连接认证获取MongoDB连接,参数是上边创建的集合
MongoClient mongoClient1 = new MongoClient(addresses, credentials);
//没有通过认证的链接
MongoClient mongoClient = new MongoClient("localhost", 27017);
//连接到数据库
MongoDatabase database = mongoClient.getDatabase("chen");
System.out.println("连接数据库 MongoDB 成功");
//创建集合 我们可以使用com.mongodb.client.MongoDatabase类中的createCollection()来创建集合.参数是集合的名称
database.createCollection("mongodb_test");
System.out.printf("创建结合成功");
//获取集合
MongoCollection<Document> colle = database.getCollection("mongodb_test");
System.out.printf("colle=="+colle);
//插入文档
/**
* 1.创建文档 org.bson.Document 参数key-value的格式
* 2.创建文档集合List<Document>
* 3.将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 mongoCollection.insertOne(Document)
*/
Document document = new Document("title", "MongoDB");
document.append("description", "database");
document.append("likes", 100);
document.append("by", "Fly");
ArrayList<Document> list = new ArrayList<Document>();
list.add(document);
colle.insertMany(list);
//查看所有文档
/**
* 1.获取迭代器FindIterable<Document>
* 2.获取游标MongoCursor<Document>
* 3.通过用表遍历检索出的文档集合
*/
FindIterable<Document> findIterable = colle.find();
MongoCursor<Document> iterator = findIterable.iterator();
while (iterator.hasNext()){
// Document next = iterator.next();
System.out.println(iterator.next());
System.out.printf("666666");
}
//更新文档
colle.updateMany(Filters.eq("likes",100), new Document("$set",new Document("likes", 200)));
FindIterable<Document> findIterable1 = colle.find();
MongoCursor<Document> iterator1 = findIterable.iterator();
while(iterator1.hasNext()){
System.out.println(iterator.next());
}
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}