DataStructure类 一个简单的数据结构 用于收集到数据的临时性存储
/** * DataStructure 类 一个简单的数据结构 * @author SoFlash - 博客园 http://www.cnblogs.com/longwu */ public class DataStructure { //定义数据字段 public String homeTeam; public String awayTeam; public String date; public String result; }
GroupMethod类 里面包含了regularGroup() 方法 用于匹配并获取 html的数据
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * GroupMethod 类 用于匹配和抓取 html页面的数据 * @author SoFlash - 博客园 http://www.cnblogs.com/longwu */ public class GroupMethod { // 传入2个字符串参数 一个是pattern(我们使用的正则) 另一个matcher是html源代码 public String regularGroup(String pattern, String matcher) { Pattern p = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(matcher); if (m.find()) { // 如果读到 return m.group();// 返回捕获的数据 } else { return ""; // 否则返回一个空字符串 } } }
MySql类 里面含有2个方法
- datatoMySql() 方法 用于向数据库里插入数据
- queryMySql() 方法 用于查看数据库里存储的数据
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * MySql类用于实施MySql数据库操作 * @author SoFlash - 博客园 http://www.cnblogs.com/longwu */ public class MySql { // 定义MySql驱动,数据库地址,数据库用户名 密码, 执行语句和数据库连接 public String driver = "com.mysql.jdbc.Driver"; public String url = "jdbc:mysql://127.0.0.1:3306/htmldatacollection"; public String user = "root"; public String password = "root"; public Statement stmt = null; public Connection conn = null; /** * 创建一个插入数据的方法 executeUpdate() * @param insertSQl */ public void datatoMySql(String insertSQl) { try { try { Class.forName(driver).newInstance(); } catch (Exception e) { System.out.println("无法找到驱动器"); e.printStackTrace(); } // 创建连接 conn = DriverManager.getConnection(url, user, password); // 创建一个 Statement 对象来将 SQL 语句发送到数据库 stmt = conn.createStatement(); // 执行SQL 插入语句 stmt.executeUpdate(insertSQl); // 执行完 停止执行语句 stmt.close(); // 执行完关闭数据库连接 conn.close(); } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } } /** * 创建一个用于select查看数据的方法 executeQuery(); * @param strSelect * @return ResultSet */ public ResultSet queryMySql(String strSelect) { // 创建一个数据集 用于获取查询到的行数据 ResultSet rs = null; try { Class.forName(driver).newInstance(); } catch (Exception e) { System.out.println("无法找到驱动器!"); e.printStackTrace(); } try { // 创建连接 conn = DriverManager.getConnection(url, user, password); // 创建一个 Statement 对象来将 SQL 语句发送到数据库 stmt = conn.createStatement(); // 执行查询语句 获取ResultSet对象 rs = stmt.executeQuery(strSelect); } catch (SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } //返回结果集 return rs; } }
Main 主函数 用于数据输出
import java.util.List; import java.util.Scanner; import java.util.Vector; /** * Main 主函数 用于数据的输出 * @author SoFlash - 博客园 http://www.cnblogs.com/longwu */ public class Main { public static void main(String[] args) { DataCollectionAndStorage dcs = new DataCollectionAndStorage(); DataQuery dQuery = new DataQuery(); while (true) { System.out.println("清空数据库-请按1"); System.out.println("收集英超比赛数据-请按2"); System.out.println("查看英超所有球队-请按3"); System.out.println("查看具体球队比赛结果-请按4"); System.out.println("查看某一天的比赛-请按5"); // Scanner 文本扫描器 用于读取 用户的输入 Scanner sc = new Scanner(System.in); int intInput = sc.nextInt(); if (intInput == 1) { dQuery.initialDataBase(); System.out .println("---------------------------------------------"); } else if (intInput == 2) { dcs.dataCollectAndStore(); System.out .println("---------------------------------------------"); } else if (intInput == 3) { //获取 查询到的所有球队名称 VectorvecAllTeams = dQuery.getAllTeams(); if (vecAllTeams.size() != 0) { System.out.println("参加过比赛的球队如下:"); System.out .print("-----------------------------------------------"); System.out .print("-----------------------------------------------rn"); for (int i = 0; i < vecAllTeams.size(); i++) { if (i % 7 == 0 && i != 0) { System.out.println("rn"); } System.out.print(vecAllTeams.get(i) + "t"); } } else System.out.print("数据库目前没有数据,请按2收集数据!"); System.out .print("rn---------------------------------------------"); System.out .println("-----------------------------------------------rn"); } else if (intInput == 4) { System.out.println("请输入你要查看的球队"); Scanner scLeague = new Scanner(System.in); String strLeague = scLeague.next(); //获取 具体球队的比赛结果 Vector lsResult = dQuery.querySpecifiedTeam(strLeague); if (lsResult.size() != 0) { System.out.println("日期ttt主队tt客队tt比分"); for (int i = 0; i < lsResult.size(); i++) { if (i % 4 == 0 && i != 0) System.out.println(); System.out.print(lsResult.get(i) + "tt"); } } else System.out.println("没有相关球队的记录或数据库没有数据!"); System.out .println("rn---------------------------------------------------"); } else if (intInput == 5) { System.out.println("请输入你要查看的比赛日期 例子格式[14.01.2012]"); Scanner scDate = new Scanner(System.in); String strDate = scDate.next(); //获取具体日期下的 所有比赛 List lsResulOnDate = dQuery.queryByDate(strDate); if (lsResulOnDate.size() != 0) { System.out.println("日期ttt主队tt客队tt比分"); for (int i = 0; i < lsResulOnDate.size(); i++) { if (i % 4 == 0 && i != 0) System.out.println(); System.out.print(lsResulOnDate.get(i) + "tt"); } } else System.out.println("该天没有比赛 或 数据库没有数据!"); System.out .println("rn---------------------------------------------------"); } } } }
Comments NOTHING