загрузить таблицу в программе Java - PullRequest
1 голос
/ 31 августа 2011

У меня есть таблица с 25 строками и 3-4 столбцами.Я хочу использовать эту таблицу один раз, чтобы прочитать все данные из нее и сохранить ее в программе Java.Поскольку мне часто нужны данные на протяжении всего жизненного цикла Java-программы, я не хочу подключаться к БД и выполнять запрос.Как мне этого добиться?

Ответы [ 4 ]

4 голосов
/ 31 августа 2011

Я бы создал класс с членом, который соответствует данным в таблице.

Затем я бы создал некоторую структуру данных (карту?), С помощью которой вы можете получать данные.

Если вам нужен доступ типа «база данных», используйте встроенную базу данных, например Apache Derby.Забирайте данные один раз извне, а затем сохраняйте их в локальной базе данных, которая будет очень быстро реагировать на поиск.

Некоторый псевдо-код

Пусть этот класс будет вашей привязкой, например ..Я только что все набрал

class MyObject {
    private final String key;
    private final long stamp;
    private final String name;
    private final int other;
    public MyObject(String key, long stamp, String name, int other) {
        this.key = key;
        this.stamp = stamp;
        this.name = name;
        this.other = other;
    }

    public String toString() {
        return name + " has an other of " + other + " and a stamp of " + stamp;
    }

}

Ваше приложение может выглядеть примерно так

class MyApp {

    Connection con = ... // connect to DB here
    // work with DB
    ResultSet rs = ... // query the DB for your data
    Map<String, MyObject> map = new HashMap<String, MyObject>();
    while(rs.next()) {
        String key = rs.getString(1);
        long stamp = rs.getLong(2);
        String name = rs.getString(3);
        int other = rs.getInteger(4);
        MyObject obj = new MyObject(key,stamp,name,other);
        map.put(key,obj);
    }
    Map<String, MyObject> safeMap = Collections.unmodifiableMap(map);

    // spawn 5 threads (yes we should keep ref's to them - oh well
    for(int i = 0; i < 5; i++) {
        Runnable run = new SomeBackgroundProcess(i,safeMap);
        Thread t = new Thread(run);
        t.start();
    }

}

А фоновый поток может выглядеть примерно так

class SomeBackgroundProcess {

    final int awesomeNumber;
    final Map<String,MyObject> map;
    SomeBackgroundProcess(int num, Map<String,MyObject> map) {
        this.awesomeNumber = num;
        this.map = map;
    }

    public void run() {
        InputStream in = // some input stream, for example
        while(true) {
            String key = in.magic(); // somehow you acquired a key!
            MyObject obj = map.get(key);
            if(obj != null) Log.log(obj.toString()); // writes out all about the object it found
        }
    }

}
1 голос
/ 31 августа 2011

если вы хотите использовать JTable для отображения / редактирования / ввода / удаления некоторых данных, вам нужно сначала

1) прочитать учебник (все данные всегда сохраняютсяв TableModel прочитайте также эти разделы)

2) и затем подумайте о примерах здесь и здесь

3)чем если у вас есть реальный вопрос, как к некоторым ..., тогда не стесняйтесь задавать вопрос, и в случае, если вы хотите от этого форума хороший или лучший ответ, тогда вы должны ... с shortи исполняемый код, который показывает вашу проблему (ы)

0 голосов
/ 31 августа 2011

Вы можете использовать концепцию кэша, которая хранит данные до тех пор, пока пользовательский сеанс не будет потерян. Пожалуйста, проверьте ссылку ниже, есть много примеров, доступных Google. концепция кеша

0 голосов
/ 31 августа 2011

Вы можете посмотреть hibernate.Он будет вам полезен, поскольку он часто используется в промышленности.Вы в основном предоставляете файл свойств с информацией о вашей базе данных, такой как адрес сервера и учетные данные, а затем создаете POJO, представляющий вашу таблицу, и помещаете в нее некоторые аннотации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...