MongoDB表結構設計程式碼實現以及連線實現
阿新 • • 發佈:2019-01-15
1、以備檢視
表結構設計程式碼:
package cn.uestc.warningTest.warningTest; import org.bson.Document; public class TableDesign { private String time;//時間 private String phoneNum;//手機號 private String type;//型別 private String local;// 位置 private String out;//漫出 private String in;//漫入 private String context;//內容 public TableDesign(String phoneNum,String type,String context){ super(); this.phoneNum = phoneNum; this.type = type; this.context = context; } public Document getDoc(){ return new Document("手機號",phoneNum). append("預警型別",type). append("詳細內容", context); } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public String getPhoneNum() { return phoneNum; } public void setPhoneNum(String phoneNum) { this.phoneNum = phoneNum; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getLocal() { return local; } public void setLocal(String local) { this.local = local; } public String getOut() { return out; } public void setOut(String out) { this.out = out; } public String getIn() { return in; } public void setIn(String in) { this.in = in; } public String getContext() { return context; } public void setContext(String context) { this.context = context; } }
2、MongoDB連線:
package cn.uestc.warningTest.warningTest; import java.util.ArrayList; import java.util.List; import org.bson.Document; import com.mongodb.BasicDBObject; import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import com.mongodb.connection.Connection; public class mongodbConnection { //mongodb資料庫連線 String url ; String dbase; String collect; Connection connection; String number; String IMSI; MongoCollection<Document> col; public mongodbConnection(String url,String dbase){ this.url= url; this.dbase = dbase; } public MongoCollection<Document> getConnection(String collect){ MongoClient client = new MongoClient(url,27019); MongoDatabase db = client.getDatabase(dbase); col =db.getCollection(collect) ; System.out.println("成功"); return col; } public MongoCursor<Document> query(String number, String simi,MongoCollection<Document> col){ BasicDBObject query = new BasicDBObject(); query.put("手機號", number); BasicDBObject query1 = new BasicDBObject(); query1.put("SIMI號", simi); List<BasicDBObject> orQueryList = new ArrayList<BasicDBObject>(); orQueryList.add(query); orQueryList.add(query1); BasicDBObject orQuery = new BasicDBObject("$or", orQueryList); FindIterable<Document> findIterable = col.find(orQuery); MongoCursor<Document> mongoCursor = findIterable.iterator(); return mongoCursor; } /*public static void main(String args[]){ mongodbConnection a = new mongodbConnection("192.168.0.75","warning","warn"); a.getConnection(); }*/ }
3、優化上面2的連線,用連線池實現:(單例模式)
package cn.uestc.warningTest.warningTest; import java.rmi.UnknownHostException; import java.util.ArrayList; import java.util.List; import org.bson.Document; import com.mongodb.BasicDBObject; import com.mongodb.MongoClient; import com.mongodb.MongoClientOptions; import com.mongodb.ServerAddress; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; public class ConnectionPool { private static MongoClient mongoClient = null; private static final ConnectionPool pool = new ConnectionPool(); private ConnectionPool(){ if(mongoClient == null){ MongoClientOptions.Builder buide = new MongoClientOptions.Builder(); buide.connectionsPerHost(100);// 與目標資料庫可以建立的最大連結數 buide.connectTimeout(1000 * 60 * 20);// 與資料庫建立連結的超時時間 buide.maxWaitTime(100 * 60 * 5);// 一個執行緒成功獲取到一個可用資料庫之前的最大等待時間 buide.threadsAllowedToBlockForConnectionMultiplier(100); buide.maxConnectionIdleTime(0); buide.maxConnectionLifeTime(0); buide.socketTimeout(0); MongoClientOptions myOptions = buide.build(); try{ mongoClient = new MongoClient(new ServerAddress("192.168.0.75",27019),myOptions); }catch(Exception e){ e.printStackTrace(); } } } public static ConnectionPool getConnectionPool(){ return pool; } public MongoDatabase getDB(String dbName){ return mongoClient.getDatabase(dbName); } public static MongoCollection<Document> getCollection(String dbName,String collectionName){ MongoDatabase db = mongoClient.getDatabase(dbName); return db.getCollection(collectionName); } public static MongoCursor<Document> query(String number, String simi,String dbName,String collectName){ MongoDatabase db = mongoClient.getDatabase(dbName); MongoCollection<Document> col =db.getCollection(collectName) ; BasicDBObject query = new BasicDBObject(); query.put("手機號", number); BasicDBObject query1 = new BasicDBObject(); query1.put("SIMI號", simi); List<BasicDBObject> orQueryList = new ArrayList<BasicDBObject>(); orQueryList.add(query); orQueryList.add(query1); BasicDBObject orQuery = new BasicDBObject("$or", orQueryList); FindIterable<Document> findIterable = col.find(orQuery); MongoCursor<Document> mongoCursor = findIterable.iterator(); return mongoCursor; } }