从GUI创建一个新的DB实例 - java

时间:2016-02-08 16:01:32

标签: java mongodb

我必须使用java驱动程序实现一个简单的GUI连接到MongoDB客户端。

这是我的GUI图片:

enter image description here

如您所见,可以选择数据库,然后按“确定”进行连接。
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类内。

0 个答案:

没有答案