如何在另一个类

时间:2016-06-04 10:47:34

标签: java mysql jdbc

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.Timestamp;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.LinkedList;

    public class Inserting {
        //connecting to the database    
      private static final String DB_DRIVER = "com.mysql.jdbc.Driver";
      private static final String DB_CONNECTION ="jdbc:mysql://localhost:3306/db?autoReconnect=true"; 
      private static final String DB_USER = "root";
      private static final String DB_PASSWORD = "root";
      static int total=1;
      public static LinkedList<Date> searchBetweenDates(Date startDate, Date endDate) throws SQLException {
            Date begin = new Date(startDate.getTime());
            LinkedList<Date> list = new LinkedList<Date>();

            list.add(new Date(begin.getTime()));

            endDate.setTime(endDate.getTime() + 24 * 3600 * 1000);
            Calendar cal = Calendar.getInstance();
            cal.setTime(begin);

        // Connecting to database

            Connection dbConnection = null;
            dbConnection = getDBConnection();
            PreparedStatement ps = dbConnection.prepareStatement("INSERT INTO cmd1(a, b, date, time) VALUES(?, ?)");
        //    System.out.println("Record is inserted into Db table!");

            while (begin.compareTo(endDate) < 0) {
                begin = new Date(begin.getTime() + 86400000);
                list.add(new Date(begin.getTime()));
                Timestamp timestamp = new Timestamp(new Date().getTime());

                // For a single day calculation: 24hours*60mins=1440 /2 (2 mins time
                // difference as per the requirement) = 720

                for (int j = 0; j < 720; j++) {
                    cal.add(Calendar.MINUTE, 2);
                    timestamp = new Timestamp(cal.getTime().getTime());
                    String S = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp);
                    String[] parts = S.split(" ");
                    String date = parts[0];
                    String time = parts[1];
                    cal.getTime().toString();

                    // To create data loop into a List
                    for (int i = 1; i <= total; i++) {

                        int a2 = 220 + j % 31; // 230 - 244 by 1
                        String a = String.valueOf(a2);
                        double b2 = 0.00 + j % 3.7; // 1.3 - 3.9 by 0.1
                        String b = String.valueOf(b2);
                        b = b.substring(0, Math.min(b.length(), 5));         
                        ps.setString(1, a);
                        ps.setString(2, b);
                        ps.execute();

                    }
                }

            }

        //    closing connection

            if (ps != null)
                ps.close();
            if (dbConnection != null)
                dbConnection.close();

            return list;
        }
      private static Connection getDBConnection() {
        Connection dbConnection = null;
        try {
          Class.forName(DB_DRIVER);
        } catch (ClassNotFoundException e) {
          System.out.println(e.getMessage());
        }
        try {
          dbConnection = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD);
          return dbConnection;
        } catch (SQLException e) {
          System.out.println(e.getMessage());
        }
        return dbConnection;
      }


    public static void main(String[] args) throws Exception {

        SimpleDateFormat  startDate=new java.text.SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat  endDate=new java.text.SimpleDateFormat("yyyy-MM-dd");

                    java.util.LinkedList hitList = searchBetweenDates(
                    startDate.parse("2016-07-01"),
                    endDate.parse("2016-12-01"));
                    String[] combo = new String[hitList.size()];
                    for(int i=0; i<hitList.size(); i++)
                    combo[i] = new java.text.SimpleDateFormat("yyyy-MM-dd").format(((java.util.Date)hitList.get(i)));               
    }
    }

public class cmd1 {
private Jdbc j;
public data (Jdbc j)

{
    this.j=j;
}

我在我的data.java类

中尝试过这个

这里我在两个日期之间进行搜索并将其插入数据中。我想把它分成不同的分类。我想在searchbetweendates中只搜索日期。我不想把我的数据和jdbc连接放在那个方法中。所以我想要两个不同的类:一个用于searchbetweendates,另一个用于jdbc连接和我的数据代码。我试图创建一个实例,但它仍无法正常工作。

1 个答案:

答案 0 :(得分:0)

你可以用两种方式做事

YourClassName object = new YourClassName();
object.yourMethod();

另一种方式

将其设为静态方法并使用

进行调用
YourClassName.yourMethod();