当前位置: 代码迷 >> Java Web开发 >> 求教定时查询,该如何解决
  详细解决方案

求教定时查询,该如何解决

热度:124   发布时间:2016-04-17 11:01:50.0
求教定时查询
底层和业务层都已经写好了。
现在我用的servlet的方式把数据以请求转发的形式发送到jsp页面上。


我想要的操作:
  页面定时可以 异步 调用servlet获取数据,然后在从servlet返回到原jsp页面。
  如果查询出来的是新数据,则用jquery动态添加tr的方式,添加到table首部。

Java code
package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import util.DBManager;import entity.Information;public class InformationDao {    private Connection con = null;    private PreparedStatement pst = null;    private ResultSet rs = null;        // 查询当天所有gtalk报警信息    public List<Information> queryAll() {                // 按方法所需拼写T-SQL语句        String sql = "SELECT gtalk_alarm.Game_Type,gtalk_alarm.`DATE`,gtalk_alarm.Alarm_Type,gtalk_alarm.IP,gtalk_alarm.Srv_ID,gtalk_alarm.Srv_Name,gtalk_alarm.Alarm_Message,gtalk_alarm.Contact,gtalk_alarm.Tel "                   + "FROM gtalk_alarm "                   + "WHERE TO_DAYS(gtalk_alarm.`DATE`) = TO_DAYS(now()) "                   + "GROUP BY gtalk_alarm.Game_Type,gtalk_alarm.`DATE`,gtalk_alarm.Alarm_Type,gtalk_alarm.IP,gtalk_alarm.Srv_ID,gtalk_alarm.Srv_Name,gtalk_alarm.Alarm_Message,gtalk_alarm.Contact,gtalk_alarm.Tel "                   + "ORDER BY gtalk_alarm.`DATE` DESC";                // 创建数据库连接                       con = DBManager.getConnection();                try {            // 创建数据库操作对象            pst = con.prepareStatement(sql);                        // 执行数据库操作对象并接受结果集            rs = pst.executeQuery();                        // 创建集合            List<Information> infoList = new ArrayList<Information>();                        // 遍历结果集            while(rs.next()){                                // 实例化信息对象                Information info = new Information();                info.setGameType(rs.getString("gtalk_alarm.Game_Type"));                info.setDate(rs.getString("gtalk_alarm.DATE"));                info.setAlarmType(rs.getString("gtalk_alarm.Alarm_Type"));                info.setIp(rs.getString("gtalk_alarm.IP"));                info.setSrv_id(rs.getString("gtalk_alarm.Srv_ID"));                info.setSrv_name(rs.getString("gtalk_alarm.Srv_Name"));                info.setAlarmMessage(rs.getString("gtalk_alarm.Alarm_Message"));                info.setContact(rs.getString("gtalk_alarm.Contact"));                info.setTel(rs.getString("gtalk_alarm.Tel"));                                // 封装对象进集合                infoList.add(info);            }                        return infoList;                    } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();            return null;        } finally{            DBManager.close(con,pst,rs);        }    }        // 按集合差值limit查询    public List<Information> queryAll(int limit){        // 按方法所需拼写T-SQL语句        String sql = "SELECT gtalk_alarm.Game_Type,gtalk_alarm.`DATE`,gtalk_alarm.Alarm_Type,gtalk_alarm.IP,gtalk_alarm.Srv_ID,gtalk_alarm.Srv_Name,gtalk_alarm.Alarm_Message,gtalk_alarm.Contact,gtalk_alarm.Tel "                   + "FROM gtalk_alarm "                   + "WHERE TO_DAYS(gtalk_alarm.`DATE`) = TO_DAYS(now()) "                   + "GROUP BY gtalk_alarm.Game_Type,gtalk_alarm.`DATE`,gtalk_alarm.Alarm_Type,gtalk_alarm.IP,gtalk_alarm.Srv_ID,gtalk_alarm.Srv_Name,gtalk_alarm.Alarm_Message,gtalk_alarm.Contact,gtalk_alarm.Tel "                   + "ORDER BY gtalk_alarm.`DATE` DESC limit"+limit;                // 创建数据库连接                       con = DBManager.getConnection();                try {            // 创建数据库操作对象            pst = con.prepareStatement(sql);                        // 执行数据库操作对象并接受结果集            rs = pst.executeQuery();                        // 创建集合            List<Information> infoList = new ArrayList<Information>();                        // 遍历结果集            while(rs.next()){                                // 实例化信息对象                Information info = new Information();                info.setGameType(rs.getString("gtalk_alarm.Game_Type"));                info.setDate(rs.getString("gtalk_alarm.DATE"));                info.setAlarmType(rs.getString("gtalk_alarm.Alarm_Type"));                info.setIp(rs.getString("gtalk_alarm.IP"));                info.setSrv_id(rs.getString("gtalk_alarm.Srv_ID"));                info.setSrv_name(rs.getString("gtalk_alarm.Srv_Name"));                info.setAlarmMessage(rs.getString("gtalk_alarm.Alarm_Message"));                info.setContact(rs.getString("gtalk_alarm.Contact"));                info.setTel(rs.getString("gtalk_alarm.Tel"));                                // 封装对象进集合                infoList.add(info);            }                        return infoList;                    } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();            return null;        } finally{            DBManager.close(con,pst,rs);        }    }    }package servlet;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import service.InformationService;import entity.Information;public class InformationServlet extends HttpServlet {    InformationService informationService = new InformationService();    List<Information> infoList = new ArrayList<Information>();    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        infoList = informationService.getInformationList();        request.setAttribute("infoList", infoList);        request.getRequestDispatcher("index.jsp").forward(request, response);    }}
  相关解决方案