我有一个有25行和3-4列的表。我想使用这个表一次来读取其中的所有数据,并将其存储在Java程序中。因为在整个Java程序生命周期中,我经常需要数据,所以我不想连接到DB并执行查询。我如何才能做到这一点?
发布于 2011-08-31 13:24:50
我将创建一个类,其成员与表中的数据相对应。
然后我会创建一些数据结构( map?)你可以通过它来获取数据。
如果需要“类似数据库”访问,请使用像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
}
}
}发布于 2011-08-31 14:30:39
如果您想使用JTable显示/编辑/输入/删除某些数据,那么您必须
1)首先读取tutorial (所有数据始终存储在TableModel中,也读取此部分)
2)然后继续思考示例here和here
3)然后如果你有一个真正的问题如何一些…,然后毫不犹豫地问问题,如果你想从这个论坛得到好的或更好的答案,那么你必须…使用short and runnable code that shows your issue(s)
发布于 2011-08-31 13:24:24
你可以查一下hibernate。它会给你带来好处,因为它在行业中经常被使用。您基本上提供了一个属性文件,其中包含数据库信息,如服务器地址和凭据,然后创建一个表示表的POJO,并在其上添加一些注释。
https://stackoverflow.com/questions/7252829
复制相似问题