每隔一分钟将查询发送到数据库

时间:2014-02-24 05:24:02

标签: java mysql database google-maps jsp

我在我的java应用程序中使用谷歌地图Api。我需要每隔一分钟将查询发送到数据库并自动删除记录(位置信息)。我使用jsp删除记录,我想每隔一分钟调用一次这个jsp文件。如果我在项目外部执行,这个jsp文件就完全删除了记录,

delete markers.jsp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%!Connection connection;
   Statement statement;
   ResultSet rs;
   PreparedStatement preparedStatement;
    %>
    <%
    ArrayList<Object> arrayList = new ArrayList<Object>(); 
    String query1="select sno,time,date_time from jam_info";
    connection=DBCreation.getConnection();
    statement=connection.createStatement();
    rs=statement.executeQuery(query1);
    while(rs.next())
    {
        int sno=rs.getInt(1);
        int expectedtime=rs.getInt(2);
        Timestamp timeReg = rs.getTimestamp(3);
        long time_minutes=(timeReg.getTime()/1000)/60;
        long total_time=expectedtime+time_minutes;
        System.out.println("expected time"+expectedtime);
        System.out.println("record insert time"+timeReg);
        System.out.println("time minutes inminutes"+(timeReg.getTime()/1000)/60);
        System.out.println("totaltime"+total_time);
        long currentTime = (System.currentTimeMillis()/1000)/60;
        System.out.println("now"+currentTime);

        if(total_time<currentTime)
        {
            preparedStatement=connection.prepareStatement("delete from jam_info where sno=?");
            preparedStatement.setInt(1, sno);
            int res=preparedStatement.executeUpdate();
            if(res>0)
            {
                System.out.println(res+"deleted");
            }
        }

    }
    %>
</body>
</html>

有了这条记录,我可以根据我的要求删除记录,但是如何每隔一分钟使用这个jsp文件来点击服务器

3 个答案:

答案 0 :(得分:1)

使用计时器发送ajax电话..

<script>
var myVar=setInterval(function(){myTimer()},1000);
function myTimer()
{
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById("demo").innerHTML=t;
}
function myStopFunction()
{
clearInterval(myVar);
}
</script>

答案 1 :(得分:1)

如果要在特定间隔时间执行操作,可以使用Quartz Scheduler。如果您希望从UI触发opeartions,请使用Jquery的setTimeout或setInterval并调用您的自定义方法来执行任何操作。

答案 2 :(得分:1)

您可以通过crontab安排它,如果您没有其权限,请询问您的系统管理员或dba -

通过以下命令打开cron文件;

crontab -e

转到最后一行并按小'o':它将使您在插入模式下移动并创建一个新行。

在此处粘贴以下行:

* / 1 * * * * /usr/......./bin/java -jar / .. path ... / my_file.jar

按esc键然后:“分号”然后键入wq然后按enter:它将保存在行上方并退出文件。

将在每隔1分钟后执行一次,并执行文件中的任何内容。