首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java程序中的加载表

Java程序中的加载表
EN

Stack Overflow用户
提问于 2011-08-31 13:19:01
回答 4查看 4.4K关注 0票数 1

我有一个有25行和3-4列的表。我想使用这个表一次来读取其中的所有数据,并将其存储在Java程序中。因为在整个Java程序生命周期中,我经常需要数据,所以我不想连接到DB并执行查询。我如何才能做到这一点?

EN

回答 4

Stack Overflow用户

发布于 2011-08-31 13:24:50

我将创建一个类,其成员与表中的数据相对应。

然后我会创建一些数据结构( map?)你可以通过它来获取数据。

如果需要“类似数据库”访问,请使用像Apache Derby这样的嵌入式数据库。从外部吸纳数据一次,然后将其存储在您的本地数据库中,这将具有非常快速的查找时间。

一些伪双工代码

让这个类作为你的绑定,例如...我只是编造了些东西

代码语言:javascript
运行
复制
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;
    }

}

您的应用程序可能如下所示

代码语言:javascript
运行
复制
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();
    }

}

后台线程可能如下所示

代码语言:javascript
运行
复制
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
        }
    }

}
票数 4
EN

Stack Overflow用户

发布于 2011-08-31 14:30:39

如果您想使用JTable显示/编辑/输入/删除某些数据,那么您必须

1)首先读取tutorial (所有数据始终存储在TableModel中,也读取此部分)

2)然后继续思考示例herehere

3)然后如果你有一个真正的问题如何一些…,然后毫不犹豫地问问题,如果你想从这个论坛得到好的或更好的答案,那么你必须…使用short and runnable code that shows your issue(s)

票数 1
EN

Stack Overflow用户

发布于 2011-08-31 13:24:24

你可以查一下hibernate。它会给你带来好处,因为它在行业中经常被使用。您基本上提供了一个属性文件,其中包含数据库信息,如服务器地址和凭据,然后创建一个表示表的POJO,并在其上添加一些注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7252829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档