《基于Java的数据采集(一)》:http://www.cnblogs.com/lichenwei/p/3904715.html
《基于Java的数据采集(二)》:http://www.cnblogs.com/lichenwei/p/3905370.html
《基于Java的数据采集(终结篇)》:http://www.cnblogs.com/lichenwei/p/3910492.html
基于之前2篇Java数据采集入库,做了下功能整合,实现本地的存读取,上个效果图:
直接上代码吧,本程序只是作为"如何用JAVA抓取页面简单采集入库"的入门,在实际做采集工具的时候,还需考虑许多东西,比如当采集一个页面发生卡顿时,发生延迟时怎么办?等一系列的问题,希望这篇文字能够抛砖引玉。
先看下项目结构:
一共有五个类:
Mysql.java --数据库操作类
RegEX.java --正则匹配类
GetAllData.java --采集类
Action.java --功能实现类
FootBallMain.java --主程序类
其他的,直接结合前面2篇文章外加看代码注释吧
Mysql.java
1 package com.lcw.curl; 2 3 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 import java.sql.Statement; 9 10 11 /** 12 * 数据库操作类,一更新,一查询 13 * @author Balla_兔子 14 * 15 */ 16 public class MySql { 17 18 //定义MySql驱动,数据库地址,数据库用户名 密码, 执行语句和数据库连接 19 public String driver = "com.mysql.jdbc.Driver"; 20 public String url = "jdbc:mysql://127.0.0.1:3306/football"; 21 public String user = "root"; 22 public String password = ""; 23 public Statement stmt = null; 24 public Connection conn = null; 25 26 //创建一个插入数据的方法 27 public void datatoMySql(String insertSQl) { 28 29 try { 30 try { 31 Class.forName(driver).newInstance(); 32 } catch (Exception e) { 33 System.out.println("Unable to find the local driver"); 34 e.printStackTrace(); 35 } 36 //创建连接 37 conn = DriverManager.getConnection(url, user, password); 38 //创建一个 Statement 对象来将 SQL 语句发送到数据库 39 stmt = conn.createStatement(); 40 } catch (SQLException e) { 41 e.printStackTrace(); 42 } 43 try { 44 //执行SQL 插入语句 45 stmt.executeUpdate(insertSQl); 46 } catch (SQLException e) { 47 e.printStackTrace(); 48 } 49 try { 50 stmt.close(); 51 conn.close(); 52 } catch (SQLException e) { 53 e.printStackTrace(); 54 } 55 } 56 57 58 //创建一个查找数据的方法 59 public ResultSet searchMySql(String selectSQl) { 60 61 ResultSet rs=null; 62 63 try { 64 try { 65 Class.forName(driver).newInstance(); 66 } catch (Exception e) { 67 System.out.println("Unable to find the local driver"); 68 e.printStackTrace(); 69 } 70 //创建连接 71 conn = DriverManager.getConnection(url, user, password); 72 //创建一个 Statement 对象来将 SQL 语句发送到数据库 73 stmt = conn.createStatement(); 74 } catch (SQLException e) { 75 e.printStackTrace(); 76 } 77 try { 78 //执行SQL 插入语句 79 rs=stmt.executeQuery(selectSQl); 80 } catch (SQLException e) { 81 e.printStackTrace(); 82 } 83 84 return rs; 85 } 86 87 }