每隔一段时间对ORACLE进行自动的查询
我是一个JAVA初学者,在学对ORACLE的查询,想到了一个问题,请各位大侠多多帮忙,这个问题是:我想实现每隔一段时间对ORACLE进行自动的查询,并且能显示在JTable 里面,请各位大侠多多帮忙,这个问题我想了很多天了,一直都没实现的了 --------------------编程问答-------------------- --------------------编程问答-------------------- 这个要用到排程,LZ可以在网上找一下关于排程的资料,在google里面搜就有很多,具体如何你自己去看吧 --------------------编程问答-------------------- B/S我还会 C/S的话 只能帮楼主顶一下 =。=|| --------------------编程问答-------------------- java当中有个Timer的对象,你去看看吧。这个可以用作定时。 --------------------编程问答-------------------- java要实现此功能需要使用多线程--------------------编程问答-------------------- AutoTask autoTask=new AutoTask();
new Thread(new Runnable(){
public void run(){
try {
while(true){
Thread.sleep(1000);
}
}(InterruptedException e) {e.printStackTrace();}
}})
Timer timer = new Timer();
timer.schedule(autoTask,new Date(),1000);
class AutoTask extends TimerTask{
}
这样就可以呀 --------------------编程问答-------------------- 等待高手。。。 --------------------编程问答-------------------- 这只是个例子,run方法根据所设定的参数执行,new Date()表示从当前时间开始,1000表示ms。即表示,从当前时间开始,每隔1000ms执行一次run方法。new Date()和1000都可以根据你自己的需要设定。
--------------------编程问答-------------------- 这是仿照你的代码写的一个测试的(数据库部分需要你自己改)
package com.study.timer;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TimerTest {
public static void main(String[] args) {
//这个是从当前时间开,每隔1000ms执行一次,也就是1秒钟打印一次。你就在run里面调用你需要的方法吧
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("hello world");
}
},new Date(), 1000);
}
}
public class JTableDemo {
private Vector vector1 = new Vector();
// private Vector vector2 = new Vector();
private Vector vector3 = new Vector();
JTable student;
JScrollPane pane3;
JPanel panel;
JFrame frame;
int i = 1;//主要用于区别是否成功刷新了页面
public JTableDemo() {
vector1.addElement("提单号");
vector1.addElement("dd");
vector1.addElement("总重量");
vector1.addElement("总卷数");
vector1.addElement("客户名称");
vector1.addElement("有效开始时间");
vector1.addElement("有效结束时间");
vector1.addElement("备注");
}
public void createTable(){
student = new JTable (vector3,vector1);
student.setPreferredScrollableViewportSize(new Dimension(1000, 100));//设置表格的大小
student.setRowHeight (30);//设置每行的高度为20
student.setSelectionForeground (Color.black);//设置所选择行的前景色
student.setGridColor (Color.black);//设置网格线的颜色
student.setShowGrid (true);//是否显示网格线
student.setShowHorizontalLines (true);//是否显示水平的网格线
student.setShowVerticalLines (true);//是否显示垂直的网格线
student.doLayout ();//使表布局行与列
student.setBackground (Color.lightGray);//表格背景
pane3 = new JScrollPane (student);
panel = new JPanel (new GridLayout (0, 1));
panel.setPreferredSize (new Dimension (1000,400));
panel.add (pane3);
frame = new JFrame ("xxxxxxxxx");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setContentPane (panel);//将Panel加入窗口中
frame.setBounds(200, 200, 1000, 300);
frame.setVisible(true);
}
public static void main(String[] args) {
JTableDemo demo = new JTableDemo();
demo.createTable();
demo.excuteTimerTask();
}
public void excuteTimerTask(){
final Timer timer = new Timer();
TimerTask tt=new TimerTask() {
@Override
public void run() {
vector3.clear();
//你需要处理的查询结果
Vector vector2 = new Vector();
if(i==1) {
vector2.addElement("1021");
vector2.addElement("1021");
vector2.addElement("1021");
vector2.addElement("1021");
vector2.addElement("1021");
vector2.addElement("1021");
vector2.addElement("1021");
vector2.addElement("1021");
} else if(i==3){
vector2.addElement("1111111");
vector2.addElement("1111111");
vector2.addElement("1111111");
vector2.addElement("1111111");
vector2.addElement("1111111");
vector2.addElement("1111111");
vector2.addElement("1111111");
vector2.addElement("1111111");
} else{
vector2.addElement("2222");
vector2.addElement("222");
vector2.addElement("222");
vector2.addElement("22");
vector2.addElement("1111111");
vector2.addElement("1111111");
vector2.addElement("1111111");
vector2.addElement("1111111");
}
i++;
vector3.addElement(vector2);
student = new JTable (vector3,vector1);
pane3 = new JScrollPane (student);
frame.setContentPane(panel);
frame.validate();
}
};
timer.schedule(tt, 1000, 1000);
}
}
补充:Java , Java SE