// Path: src/main/java/com/adintellig/ella/model/Table.java
// public class Table {
// 	private String tableName;
// 	private Timestamp updateTime = null;
// 
// 	public String getTableName() {
// 		return tableName;
// 	}
// 
// 	public void setTableName(String tableName) {
// 		this.tableName = tableName;
// 	}
// 
// 	public Timestamp getUpdateTime() {
// 		return updateTime;
// 	}
// 
// 	public void setUpdateTime(Timestamp updateTime) {
// 		this.updateTime = updateTime;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		final int prime = 31;
// 		int result = 1;
// 		result = prime * result
// 				+ ((tableName == null) ? 0 : tableName.hashCode());
// 		return result;
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (this == obj)
// 			return true;
// 		if (obj == null)
// 			return false;
// 		if (getClass() != obj.getClass())
// 			return false;
// 		Table other = (Table) obj;
// 		if (tableName == null) {
// 			if (other.tableName != null)
// 				return false;
// 		} else if (!tableName.equals(other.tableName))
// 			return false;
// 		return true;
// 	}
// 
// }
// 
// Path: src/main/java/com/adintellig/ella/util/JdbcUtil.java
// public class JdbcUtil {
// 
// 	private static String db_driver;
// 	private static String db_url;
// 	private static String db_userName;
// 	private static String db_passWord;
// 
// 	static {
// 		ConfigProperties config = ConfigFactory.getInstance()
// 				.getConfigProperties(ConfigFactory.ELLA_CONFIG_PATH);
// 		db_driver = config.getProperty("mysql.db.driver");
// 		db_url = config.getProperty("mysql.db.url");
// 		db_userName = config.getProperty("mysql.db.user");
// 		db_passWord = config.getProperty("mysql.db.pwd");
// 	}
// 
// 	public static Connection getConnection() {
// 		Connection con = null;
// 		try {
// 			Class.forName(db_driver);
// 		} catch (ClassNotFoundException e) {
// 			System.out.println("3-ClassNotFoundException");
// 			e.printStackTrace();
// 			return null;
// 		}
// 		try {
// 			con = DriverManager.getConnection(db_url, db_userName, db_passWord);
// 		} catch (SQLException e) {
// 			System.out.println("4-SQLException");
// 			e.printStackTrace();
// 			return null;
// 		}
// 		return con;
// 	}
// 
// 	public static void close(Connection con, Statement stmt, ResultSet rs) {
// 		if (rs != null) {
// 			try {
// 				rs.close();
// 			} catch (SQLException e) {
// 				System.out.println("5--SQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 		if (stmt != null) {
// 			try {
// 				stmt.close();
// 			} catch (SQLException e) {
// 				System.out.println("6-SQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 		if (con != null) {
// 			try {
// 				con.close();
// 			} catch (SQLException e) {
// 				System.out.println("7-closeSQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 	}
// 
// 	public static void close(Connection con, PreparedStatement pstmt,
// 			ResultSet rs) {
// 		if (rs != null) {
// 			try {
// 				rs.close();
// 			} catch (SQLException e) {
// 				System.out.println("8-SQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 		if (pstmt != null) {
// 			try {
// 				pstmt.close();
// 			} catch (SQLException e) {
// 				System.out.println("9-SQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 		if (con != null) {
// 			try {
// 				con.close();
// 			} catch (SQLException e) {
// 				System.out.println("10-closeSQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 	}
// 
// 	public static void close(Connection con) {
// 		if (con != null) {
// 			try {
// 				con.close();
// 			} catch (SQLException e) {
// 				System.out.println("11-closeSQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 	}
// 
// }


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.adintellig.ella.model.Table;
import com.adintellig.ella.util.JdbcUtil;
package com.adintellig.ella.dao;




public class TableDaoImpl {
	private static Logger logger = LoggerFactory.getLogger(TableDaoImpl.class);

	static final String insertTablesSQL = "INSERT INTO hbase.tables(table_name, update_time) "
			+ "VALUES(?, ?)";

	public void batchUpdate(List<Table> beans) throws Exception {
		Connection con = JdbcUtil.getConnection();

		PreparedStatement stmt = con.prepareStatement(insertTablesSQL);

		if (null != beans && beans.size() > 0) {
			for (Table t : beans) {
				stmt.setString(1, t.getTableName());
				stmt.setTimestamp(2, t.getUpdateTime());
				stmt.addBatch();
			}
			logger.info("[INSERT] Load Tables info into 'tables'. Size=" + beans.size());
		}
		stmt.executeBatch();
		JdbcUtil.close(con, stmt, null);
	}
	
// Path: src/main/java/com/adintellig/ella/model/Table.java
// public class Table {
// 	private String tableName;
// 	private Timestamp updateTime = null;
// 
// 	public String getTableName() {
// 		return tableName;
// 	}
// 
// 	public void setTableName(String tableName) {
// 		this.tableName = tableName;
// 	}
// 
// 	public Timestamp getUpdateTime() {
// 		return updateTime;
// 	}
// 
// 	public void setUpdateTime(Timestamp updateTime) {
// 		this.updateTime = updateTime;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		final int prime = 31;
// 		int result = 1;
// 		result = prime * result
// 				+ ((tableName == null) ? 0 : tableName.hashCode());
// 		return result;
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (this == obj)
// 			return true;
// 		if (obj == null)
// 			return false;
// 		if (getClass() != obj.getClass())
// 			return false;
// 		Table other = (Table) obj;
// 		if (tableName == null) {
// 			if (other.tableName != null)
// 				return false;
// 		} else if (!tableName.equals(other.tableName))
// 			return false;
// 		return true;
// 	}
// 
// }
// 
// Path: src/main/java/com/adintellig/ella/util/JdbcUtil.java
// public class JdbcUtil {
// 
// 	private static String db_driver;
// 	private static String db_url;
// 	private static String db_userName;
// 	private static String db_passWord;
// 
// 	static {
// 		ConfigProperties config = ConfigFactory.getInstance()
// 				.getConfigProperties(ConfigFactory.ELLA_CONFIG_PATH);
// 		db_driver = config.getProperty("mysql.db.driver");
// 		db_url = config.getProperty("mysql.db.url");
// 		db_userName = config.getProperty("mysql.db.user");
// 		db_passWord = config.getProperty("mysql.db.pwd");
// 	}
// 
// 	public static Connection getConnection() {
// 		Connection con = null;
// 		try {
// 			Class.forName(db_driver);
// 		} catch (ClassNotFoundException e) {
// 			System.out.println("3-ClassNotFoundException");
// 			e.printStackTrace();
// 			return null;
// 		}
// 		try {
// 			con = DriverManager.getConnection(db_url, db_userName, db_passWord);
// 		} catch (SQLException e) {
// 			System.out.println("4-SQLException");
// 			e.printStackTrace();
// 			return null;
// 		}
// 		return con;
// 	}
// 
// 	public static void close(Connection con, Statement stmt, ResultSet rs) {
// 		if (rs != null) {
// 			try {
// 				rs.close();
// 			} catch (SQLException e) {
// 				System.out.println("5--SQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 		if (stmt != null) {
// 			try {
// 				stmt.close();
// 			} catch (SQLException e) {
// 				System.out.println("6-SQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 		if (con != null) {
// 			try {
// 				con.close();
// 			} catch (SQLException e) {
// 				System.out.println("7-closeSQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 	}
// 
// 	public static void close(Connection con, PreparedStatement pstmt,
// 			ResultSet rs) {
// 		if (rs != null) {
// 			try {
// 				rs.close();
// 			} catch (SQLException e) {
// 				System.out.println("8-SQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 		if (pstmt != null) {
// 			try {
// 				pstmt.close();
// 			} catch (SQLException e) {
// 				System.out.println("9-SQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 		if (con != null) {
// 			try {
// 				con.close();
// 			} catch (SQLException e) {
// 				System.out.println("10-closeSQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 	}
// 
// 	public static void close(Connection con) {
// 		if (con != null) {
// 			try {
// 				con.close();
// 			} catch (SQLException e) {
// 				System.out.println("11-closeSQLException");
// 				e.printStackTrace();
// 			}
// 		}
// 	}
// 
// }


// Path: src/main/java/com/adintellig/ella/dao/TableDaoImpl.java
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.adintellig.ella.model.Table;
import com.adintellig.ella.util.JdbcUtil;

package com.adintellig.ella.dao;




public class TableDaoImpl {
	private static Logger logger = LoggerFactory.getLogger(TableDaoImpl.class);

	static final String insertTablesSQL = "INSERT INTO hbase.tables(table_name, update_time) "
			+ "VALUES(?, ?)";

	public void batchUpdate(List<Table> beans) throws Exception {
		Connection con = JdbcUtil.getConnection();

		PreparedStatement stmt = con.prepareStatement(insertTablesSQL);

		if (null != beans && beans.size() > 0) {
			for (Table t : beans) {
				stmt.setString(1, t.getTableName());
				stmt.setTimestamp(2, t.getUpdateTime());
				stmt.addBatch();
			}
			logger.info("[INSERT] Load Tables info into 'tables'. Size=" + beans.size());
		}
		stmt.executeBatch();
		JdbcUtil.close(con, stmt, null);
	}
	
	public boolean needUpdate(List<Table> tables) {