我必须使用java驱动程序实现一个简单的GUI连接到MongoDB客户端。
这是我的GUI图片:
如您所见,可以选择数据库,然后按“确定”进行连接。
在MongoDBClient
类中,有一个方法(getDatabasesName
)来检测所有存在的数据库名称:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.mongodb.MongoClient;
public class MongoDBClient {
private MongoClient client;
public MongoDBClient() {
try {
this.client = new MongoClient("127.0.0.1", 27017);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public MongoClient getClient() {
return client;
}
public ArrayList<String> getDatabasesName(){
ArrayList<String> dbsName = new ArrayList<>();
List<String> dbs = this.client.getDatabaseNames();
Iterator<String> iterator = dbs.iterator();
while(iterator.hasNext()){
dbsName.add(iterator.next());
}
return dbsName;
}
}
然后,在我的main
中,我创建了一个MongoDBClient的新实例,并将数据库名称的arrayList传递给Window1
类:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
MongoDBClient mongoClient = new MongoDBClient();
ArrayList<String> dbName = mongoClient.getDatabasesName();
try {
Window1 w1 = new Window1(dbName);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
最后,在我的窗口中,可以从一组按钮中选择一个数据库:
public void chooseDB(ArrayList<String> dbName) {
dbButton= new JRadioButton[dbName.size()];
ButtonGroup group = new ButtonGroup();
int x = 5;
for(int i = 0; i<dbName.size(); i++) {
dbButton[i] = new JRadioButton(dbName.get(i));
dbButton[i].setBounds(x, 28, 65, 15);
dbButton[i].setBackground(Color.WHITE);
this.panel.add(dbButton[i]);
x=x+100;
group.add(dbButton[i]);
}
}
按下OK之后,我想创建一个新的DB实例,但是在主类中不在window1
类内。