每天写程序,改的代码比较多,改的文件也比较多,有时候第二天发现程序出bug了,但是忘记自己前一天修改的哪些文件甚是头疼,然后自己就写了一个能把每天修改过的文件名入库保存的程序。
这个程序实现的思路是:
1、指定一个扫描的文件下,一般是程序的文件夹。
2、指定扫描文件的扩展名。
3、得到每个文件的最后修改时间,并且判断是否是在当天修改的,是的话把文件名入库(或者是包括项目路径、包路径),然后保存在集合里。
4、查询表里面的数据,遍历每天数据看看有没今天新增的记录。
4.1 如果没有今天新增的记录,就把集合入库。
4.2 如果有今天新增的记录,则把该记录的主键拿出来,根据主键把集合更新进去。
最后为了使用方便我做成了swing,只需要在eclipse里面导出成“Runnable JAR File”格式的就行了,注意Main函数的选择。完了之后双击运行即可。
查询代码:
import java.awt.Frame;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import javax.swing.JOptionPane;
public class insertJar extends Frame
{
static StringBuffer sb = new StringBuffer();
static Date dd = new Date();
static String mess = "";
public static void main(String[] args) throws SQLException, ParseException {
dd.setHours(1);
tree(new File("e:\\code"));
sort(sb);
inst(sb);
JOptionPane.showMessageDialog(null, mess, "执行结果", -1);
System.exit(0);
}
public static void tree(File f)
{
if (!f.isDirectory()) {
System.out.println("你输入的不是一个文件夹,请检查路径是否有误!!");
}
else {
File[] t = f.listFiles();
for (int i = 0; i < t.length; i++)
{
if ((t[i].isDirectory()) && (!t[i].isHidden()))
{
tree(t[i]);
}
else
{
File file = new File(t[i].getPath());
Date d = new Date(file.lastModified());
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
String s = t[i].getName();
String ss = sdf.format(d);
if ((d.getTime() > dd.getTime()) &&
(!".svn".equals(s)) && (
(s.lastIndexOf(".java") > -1) ||
(s.lastIndexOf(".js") > -1) ||
(s.lastIndexOf(".css") > -1) ||
(s.lastIndexOf(".jsp") > -1) ||
(s.lastIndexOf(".ftl") > -1)))
{
sb.append(s + " " + ss + "\n");
}
}
}
}
}
public static void inst(StringBuffer sb) throws SQLException, ParseException
{
String url = "jdbc:mysql://192.168.0.166:3306/test?user=root&password=123456";
Connection con = DriverManager.getConnection(url);
String query = "select * from hanjun_01";
PreparedStatement ps = con.prepareStatement(query);
ResultSet rs = ps.executeQuery();
int zhujian = 0;
boolean isInst = true;
while (rs.next())
{
if (new Date(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(rs.getString(3)).getTime()).getTime() > dd.getTime()) {
isInst = false;
zhujian = rs.getInt(1);
break;
}
}
if (isInst) {
String insSql = "insert into hanjun_01(xiangxixinxi,chuangjianshijian) values(?,?)";
ps = con.prepareStatement(insSql);
ps.setString(1, sb.toString());
ps.setString(2, new SimpleDateFormat("YYYY-MM-dd HH:mm:ss").format(new Date()));
ps.executeUpdate();
mess = "插入成功";
}
else
{
String upSql = "update hanjun_01 set xiangxixinxi=?,chuangjianshijian=? where zhujian=?";
ps = con.prepareStatement(upSql);
ps.setString(1, sb.toString());
ps.setString(2, new SimpleDateFormat("YYYY-MM-dd HH:mm:ss").format(new Date()));
ps.setInt(3, zhujian);
ps.executeUpdate();
mess = "更新成功";
}
ps.close();
con.close();
}
public static void sort(StringBuffer sb) {
String[] s = sb.toString().split("\n");
Arrays.sort(s);
for (String string : s)
System.out.println(string);
}
}
import java.awt.Frame;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
public class queryJar extends Frame
{
public static void main(String[] args)
throws SQLException
{
run();
}
public static void run() throws SQLException {
String xinXi = "";
String shiJian = "";
String url = "jdbc:mysql://192.168.0.166:3306/test?user=root&password=123456";
Connection con = DriverManager.getConnection(url);
Date dd = new Date();
dd.setHours(1);
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
String sql = "select * from hanjun_01 where chuangjianshijian > ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, sdf.format(dd));
ResultSet rs = ps.executeQuery();
if (rs.next()) {
xinXi = rs.getString(2);
shiJian = rs.getString(3);
JOptionPane.showMessageDialog(null, xinXi, "今天修改的文件(创建时间:" + shiJian + ")", -1);
}
else {
JOptionPane.showMessageDialog(null, "无记录", "今天修改的文件", -1);
}
ps.close();
con.close();
}
public static String z(String s) {
int i = 40 - s.length() - 3;
for (int j = 0; j < i; j++) {
s = s + " ";
}
return s;
}
}