重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
你這跟struts2沒關(guān)系,需要一個定時器,定時去跑你的查詢庫表代碼就OK了。
在定陶等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作專業(yè)公司,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,外貿(mào)營銷網(wǎng)站建設(shè),定陶網(wǎng)站建設(shè)費用合理。
如果你的程序是需要將查詢結(jié)果展示在jsp頁面上,你需要在jsp頁面上使用js寫定時器代碼,參考SetInterval方法。
如果你的程序是桌面應(yīng)用程序,你可以使用java的定時器Timer。當(dāng)然,你的項目中如果使用了spring,那有更好的解決方案Quartz。
具體問題要具體分析了。
我用的是oracle 數(shù)據(jù)庫。查詢String sql = "select EMPNO,ENAME,SAL,DEPTNO from emp where ENAME like ?";顯示4個字段
///主方法
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
public class TrendSearch extends JFrame {
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private MyTableModel tableModel;
private ListObject list = new ArrayListObject();
private Staff staff;
private Connection connection = (Connection) OraSqlConnection
.getConnection();
ResultSet rs = null;
/**
* @param args
*/
public TrendSearch() {
initComponents();
}
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextField1 = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jTextField1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
jTextField1KeyReleased(evt);
}
});
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().add(jTextField1, java.awt.BorderLayout.NORTH);
tableModel = new MyTableModel(new String[] { "EMPNO", "ENAME", "SAL",
"DEPTNO" }, new ArrayList());
jTable1.setModel(tableModel);
jScrollPane1.setViewportView(jTable1);
getContentPane().add(jScrollPane1, java.awt.BorderLayout.SOUTH);
pack();
}
private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
String s = jTextField1.getText().trim();
list.removeAll(list);
if (s != null !"".equals(s)) {
PreparedStatement pstmt = null;
System.out.println(s);
String sql = "select EMPNO,ENAME,SAL,DEPTNO from emp where ENAME like ?";
try {
pstmt = connection.prepareStatement(sql);
pstmt.setString(1, s + "%");
rs = pstmt.executeQuery();
while (rs.next()) {
staff = new Staff();
staff.setEMPNO(rs.getString(1));
staff.setENAME(rs.getString(2));
staff.setSAL(rs.getString(3));
staff.setDEPTNO(rs.getString(4));
list.add(staff);
}
tableModel.data = list;
tableModel.fireTableDataChanged();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private class MyTableModel extends BaseTableModel {
public MyTableModel(String[] cols, ListObject data) {
super(cols, data);
// TODO Auto-generated constructor stub
}
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
Staff s = (Staff) list.get(rowIndex);
switch (columnIndex) {
case 0:
return s.getDEPTNO();
case 1:
return s.getENAME();
case 2:
return s.getSAL();
case 3:
return s.getDEPTNO();
default:
break;
}
return null;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TrendSearch ts = new TrendSearch();
ts.setVisible(true);
}
}
///tabel 類
import java.util.List;
import javax.swing.table.AbstractTableModel;
public abstract class BaseTableModel extends AbstractTableModel {
public String[] cols;
public ListObject data;
public BaseTableModel(String[] cols, ListObject data) {
this.cols = cols;
this.data = data;
}
public int getColumnCount() {
return cols.length;
}
public int getRowCount() {
return data.size();
}
public String getColumnName(int colIndex) {
return cols[colIndex];
}
}
//javabean 類
public class Staff {
private String EMPNO;
private String ENAME;
private String SAL;
private String DEPTNO;
public String getEMPNO() {
return EMPNO;
}
public void setEMPNO(String empno) {
EMPNO = empno;
}
public String getENAME() {
return ENAME;
}
public void setENAME(String ename) {
ENAME = ename;
}
public String getSAL() {
return SAL;
}
public void setSAL(String sal) {
SAL = sal;
}
public String getDEPTNO() {
return DEPTNO;
}
public void setDEPTNO(String deptno) {
DEPTNO = deptno;
}
}
///JDBC類
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* @author jiangzongshuai
*
*/
public class OraSqlConnection {
private static String className = "oracle.jdbc.driver.OracleDriver";
private static String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
private static String username = "scott";
private static String password = "tiger";
private static Connection conn = null;
public static Connection getConnection() {
try {
if (conn !=null) return conn;
Class.forName(className);
conn = DriverManager.getConnection(url, username, password);
return conn;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
根據(jù)選擇查詢內(nèi)容在后臺動態(tài)拼接sql,比如條件A,select * from A,條件B換成select * from B.
前端也可以動態(tài)的顯示要查詢的內(nèi)容。