package com.test;
import java.util.ArrayList;
import java.util.List;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.sun.javafx.geom.transform.GeneralTransform3D;
import com.sun.media.jfxmedia.events.AudioSpectrumListener;
import org.bson.Document;
/**
* http://www.runoob.com/mongodb/mongodb-java.html
*/
public class MongodbUtil {
public static final String MONGODB_HOST = "192.168.10.101";
public static final int MONGODB_PORT = 27017;
public static final String MONGODB_DB = "ssm";
public static final String MONGODB_COLLECTION = "config";
public static MongoClient mMongoClient = null;
public static MongoDatabase mMongoDatabase = null;
public static MongoCollection<Document> mMongoCollection;
public MongoClient getMongoClient() {
if (mMongoClient == null) {
// 连接到 mongodb 服务
mMongoClient = new MongoClient(MONGODB_HOST, MONGODB_PORT);
}
return mMongoClient;
}
public MongoDatabase getMongoDatabase(String db) {
// 连接到数据库
mMongoDatabase = mMongoClient.getDatabase(db);
System.out.println("Connect to database:"+db+" successfully");
return mMongoDatabase;
}
public void connectDbWithPwd() {
try {
// 连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址
// ServerAddress()两个参数分别为 服务器地址 和 端口
ServerAddress serverAddress = new ServerAddress(MONGODB_HOST, MONGODB_PORT);
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
// MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName",
"password".toCharArray());
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
// 通过连接认证获取MongoDB连接
MongoClient mMongoClient = new MongoClient(addrs, credentials);
// 连接到数据库
MongoDatabase mMongoDatabase = mMongoClient.getDatabase(MONGODB_DB);
System.out.println("Connect to database successfully");
} catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
}
public void createCollection(String collection) {
try {
System.out.println("Connect to database successfully");
mMongoDatabase.createCollection(collection);
System.out.println("集合 "+collection+" 创建成功");
} catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
}
public MongoCollection<Document> getCollection(String collectionName) {
mMongoCollection = mMongoDatabase.getCollection(collectionName);
System.out.println("集合 "+collectionName+" 选择成功");
return mMongoCollection;
}
public void insertDocument(String collectionName) {
try {
// 插入文档
/**
* 1. 创建文档 org.bson.Document 参数为key-value的格式 2. 创建文档集合List<Document> 3.
* 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用
* mongoCollection.insertOne(Document)
*/
Document document = new Document("title", "MongoDB").append("description", "database").append("likes", 100)
.append("by", "Fly");
List<Document> documents = new ArrayList<Document>();
documents.add(document);
mMongoCollection.insertMany(documents);
System.out.println("文档插入成功");
} catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
}
public void searchDocument(String collectionName) {
try {
System.out.println("集合 test 选择成功");
// 检索所有文档
/**
* 1. 获取迭代器FindIterable<Document> 2. 获取游标MongoCursor<Document> 3. 通过游标遍历检索出的文档集合
*/
FindIterable<Document> findIterable = mMongoCollection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
while (mongoCursor.hasNext()) {
System.out.println(mongoCursor.next());
}
} catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
}
public void updateDocument(String collectionName) {
try {
System.out.println("集合 test 选择成功");
// 更新文档 将文档中likes=100的文档修改为likes=200
mMongoCollection.updateMany(Filters.eq("likes", 100), new Document("$set", new Document("likes", 200)));
// 检索查看结果
FindIterable<Document> findIterable = mMongoCollection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
while (mongoCursor.hasNext()) {
System.out.println(mongoCursor.next());
}
} catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
}
public void deleteDocument() {
try {
// 删除符合条件的第一个文档
mMongoCollection.deleteOne(Filters.eq("likes", 200));
// 删除所有符合条件的文档
mMongoCollection.deleteMany(Filters.eq("likes", 200));
// 检索查看结果
FindIterable<Document> findIterable = mMongoCollection.find();
MongoCursor<Document> mongoCursor = findIterable.iterator();
while (mongoCursor.hasNext()) {
System.out.println(mongoCursor.next());
}
} catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MongodbUtil mongodb = new MongodbUtil();
mMongoClient = mongodb.getMongoClient();
mMongoDatabase = mongodb.getMongoDatabase(MONGODB_DB);
mMongoCollection = mongodb.getCollection(MONGODB_COLLECTION);
System.out.println("mMongoCollection:"+mMongoCollection);
mongodb.insertDocument(MONGODB_COLLECTION);
}
}
通过 _id 获取数据
Query<Config> query = ds.createQuery(Config.class).field("_id").equal(new ObjectId(id));
排序
Query<Config> query = ds.createQuery(Config.class);
long total = query.countAll();
List<Config> pageData = query.order("-key").offset(pageIndex * pageSize).limit(pageSize).asList();
查询数据表,打印列数据
DBObject dbObject = new BasicDBObject();
dbObject.put("isHot", true);
DBObject fieldObject = new BasicDBObject();
fieldObject.put("zhName", true);
fieldObject.put("_id", true);
Query query = new BasicQuery(dbObject, fieldObject);
List<Locality> hotCities=mongoTemplate.find(query, Locality.class);
return hotCities;
DBCollection dbCollection =mongoClient.getCollection("test");
DBCursor dbCursor = dbCollection.find();
while(dbCursor.hasNext()) {
BasicDBObject row = (BasicDBObject) dbCursor.next();//获取表内数据
if(row != null){
System.out.println("name:--"+row.getString("name"));
System.out.println("age:--"+row.getString("age"));
}
}
dbCursor.close();
MongoDB获取客户端
private MongoClient getMongoClient() {
String dbUri = "mongodb://127.0.0.1:12701/test"
try {
if (null != mongoClient) {
return mongoClient;
} else {
MongoClientOptions.Builder builder = MongoClientOptions.builder();
builder.socketKeepAlive(true);
builder.socketTimeout(20000);
builder.connectTimeout(20000);
builder.maxWaitTime(12000000);
builder.heartbeatFrequency(2000);// 心跳频率
MongoClientURI uri = new MongoClientURI(dbUri, builder);
// uri.get
mongoClient = new MongoClient(uri);
return mongoClient;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
https://ask.csdn.net/questions/269228
https://blog.csdn.net/zhanglu1236789/article/details/69525012?locationNum=2&fps=1
https://blog.csdn.net/u010812864/article/details/70752540
https://blog.csdn.net/qq_16504067/article/details/72779448
https://blog.csdn.net/sunshinegyan/article/details/78328596
https://blog.csdn.net/wab719591157/article/details/73379844
https://blog.csdn.net/shenjianxz/article/details/75115175
https://blog.csdn.net/qq_35981283/article/details/77826537
https://www.cnblogs.com/Laymen/p/6122108.html
https://blog.csdn.net/yibing548/article/details/45692379
http://daimajia.iteye.com/blog/2322824 mongodb注解