package com.fr.data; import com.fr.stable.ParameterProvider; import com.fr.third.v2.org.apache.poi.stable.collections.array.Array; import com.mongodb.*; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import org.bson.BsonDocument; import org.bson.Document; import org.bson.codecs.configuration.CodecRegistry; import org.bson.conversions.Bson; import java.util.ArrayList; import java.util.Dictionary; import java.util.List; public class App extends AbstractTableData{ private String[] columnNames; //private Object[][] cond; private ArrayList valueList = null; public App() { String[] columnNames = {"_id","title","description","likes","by","url"}; this.columnNames = columnNames; //this.rowData = rowData; } public static MongoDatabase connDb(){ List adds = new ArrayList<>(); //ServerAddress()两个参数分别为 服务器地址 和 端口 ServerAddress serverAddress = new ServerAddress("116.62.241.166", 21717); adds.add(serverAddress); List credentials = new ArrayList<>(); //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码 MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("root", "frdb", "123456".toCharArray()); credentials.add(mongoCredential); //通过连接认证获取MongoDB连接 MongoClient mongoClient = new MongoClient(adds, credentials); //连接到数据库 MongoDatabase db = mongoClient.getDatabase("frdb"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase inof is : "+db.getName()); return db; } public void insertDoc(){ MongoDatabase db=App.connDb(); MongoCollection collection = db.getCollection("myTestCollection"); Document document = new Document("_id", 2999) .append("title", "MongoDB Insert Demo") .append("description","database") .append("likes", 20) .append("by", "demo point") .append("url", "http://c.biancheng.net/mongodb/"); collection.insertOne(document); } public void selectDoc(){ if (valueList != null) { return; } String Par1 = ((ParameterProvider) (parameters.get().toArray())[0]).getValue().toString(); //Integer Par2 =(Integer)Par1; //String Par1 ="no sql"; //System.out.println(Par1); //String Par1 = parameters[0].getValue().toString(); valueList = new ArrayList(); MongoDatabase db=App.connDb(); MongoCollection collection = db.getCollection("myTestCollection"); // BasicDBList condList = new BasicDBList(); // condList.add(Par1); BasicDBObject cond = new BasicDBObject(); // cond.put("_id",new BasicDBObject("$ID",condList)); cond.put("title",Par1); FindIterable findIterable = collection.find(cond); MongoCursor cursor =findIterable.iterator(); try{ while (cursor.hasNext()){ //System.out.println(cursor.next().toJson()); Document objDoc = cursor.next(); Integer id = objDoc.getInteger("_id"); String title = objDoc.getString("title"); String description = objDoc.getString("description"); Integer likes = objDoc.getInteger("likes"); String by = objDoc.getString("by"); String url = objDoc.getString("url"); //System.out.println(id); Object[] temp = {id,title,description,likes,by,url}; valueList.add(temp); //System.out.println(valueList); } } finally{ cursor.close(); } } @Override public int getColumnCount() { //selectDoc(); System.out.println(columnNames.length); return columnNames.length; } @Override public String getColumnName(int colIndex) { //selectDoc(); return columnNames[colIndex]; } @Override public int getRowCount() { selectDoc(); System.out.println(valueList.size()); return valueList.size(); } @Override public Object getValueAt(int rowIndex, int colIndex) { selectDoc(); if(colIndex>=columnNames.length){ return null; } System.out.println(((Object[])valueList.get(rowIndex))[colIndex]); return ((Object[])valueList.get(rowIndex))[colIndex]; } public static void main(String[] args) { App app = new App(); //App.connDb(); //app.insertDoc(); app.getRowCount(); //app.getColumnCount(); //app.getValueAt(0,1); } }