小弟现在需要实现一个每天都要自动的从数据库查询一次数据,然后写成资源文件,需要如何实现,请名位帮帮忙!!!急用啊!

解决方案 »

  1.   

    java有个TimerTask,你找找相关资料吧。
      

  2.   

    用Timer 。写个类继承TimerTask,重写run方法实现你的从据库查询一次数据
    然后调用timer的schedule(TimerTask task, Date time) 方法 
    task - 所要安排的任务。
    time - 执行任务的时间。
      

  3.   

    楼上的说的都不错。不过spring的监听也可以的。
      

  4.   

    conn = DriverManager.getConnection(url,username,pwd);为什么执行到这句话后就不能往下运行了。也就是我再连接数据库以后他就不看走了。是什么原因啊!!!
      

  5.   

    package com.readfile.lianxi;
    import java.io.IOException;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Timer;public class TimerTest {public static void main(String[] args){Timer timer = new Timer();timer.schedule(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了try {int ch = System.in.read();if(ch-'c'==0){timer.cancel();//使用这个方法退出任务}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
    static class MyTask extends java.util.TimerTask{ Connection conn = null;
    String driver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/auto_info";
    String username = "root";
    String pwd = "root";
    PreparedStatement pstat = null;
    ResultSet rs = null;
    public void run() {
    try {
    Class.forName(driver);
    System.out.println("_________________");
    conn = DriverManager.getConnection(url,username,pwd);
    System.out.println("--------------------");
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } } } }
    虚线部分不运行!!!
      

  6.   

    错误信息有没,贴出来,虚线部分是连接问题?不执行就会出错的吧,要不timeout??
      

  7.   

    public static void main(String[] args){
    Connection conn = null;
    String driver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/auto_info";
    String username = "root";
    String pwd = "root";
    PreparedStatement pstat = null;
    Statement stat = null;
    ResultSet rs = null;
    String sql = "select * from autodealer";
    try {
    Class.forName(driver);
    System.out.println("_________________");
    conn = DriverManager.getConnection(url,username,pwd);
    System.out.println("------------");
    pstat = conn.prepareStatement(sql);
    rs = pstat.executeQuery();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    运行没问题,只要用到定时器的话就走不下去了。楼上是说时间溢出吗?我改成10秒钟运行一次,它还是不走。
      

  8.   

    package com.readfile.lianxi;
    import java.io.IOException;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Timer;public class TimerTest {public static void main(String[] args){

    Timer timer = new Timer();timer.schedule(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.}
    static class MyTask extends java.util.TimerTask{ public void run() {
    Connection conn = null;
    String driver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/auto_info";
    String username = "root";
    String pwd = "root";
    PreparedStatement pstat = null;
    Statement stat = null;
    ResultSet rs = null;
    String sql = "select * from autodealer";
    try {
    Class.forName(driver);
    conn = DriverManager.getConnection(url,username,pwd);
    pstat = conn.prepareStatement(sql);
    rs = pstat.executeQuery();
    while(rs.next()){
    System.out.println("我成功了!!!");
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } } } }
    这是源代码,现在已经没问题了,已经能正常访问数据了。