// Path: src/main/java/com/dianping/polestar/store/mysql/dao/QueryDAO.java
// public interface QueryDAO {
// 
// 	public void insertQueryInfo(QueryInfo queryInfo);
// 
// 	public List<QueryInfo> findQueryInfoByUsername(String username);
// 
// 	public void insertQueryProgress(QueryProgress queryProgress);
// 
// 	public QueryProgress findQueryProgressById(String id);
// 
// 	public void insertQueryCancel(QueryCancel qc);
// 
// 	public List<QueryCancel> findQueryCancelWithouHost(String host);
// 
// 	public void deleteQueryCancelById(String id);
// }
// 
// Path: src/main/java/com/dianping/polestar/store/mysql/domain/QueryInfo.java
// public class QueryInfo {
// 	private String sql;
// 	private String mode;
// 	private String username;
// 	private String resultFilePath;
// 	private long execTime;
// 	private String addtime;
// 
// 	public QueryInfo() {
// 	}
// 
// 	public QueryInfo(Query q, QueryResult rs, long starttime) {
// 		setSql(q.getSql());
// 		setMode(q.getMode());
// 		setUsername(q.getUsername());
// 		setResultFilePath(rs.getResultFilePath());
// 		setExecTime(rs.getExecTime());
// 		setAddtime(EnvironmentConstants.DATE_FORMAT.format(new Date(starttime)));
// 	}
// 
// 	public String getSql() {
// 		return sql;
// 	}
// 
// 	public void setSql(String sql) {
// 		this.sql = sql;
// 	}
// 
// 	public String getMode() {
// 		return mode;
// 	}
// 
// 	public void setMode(String mode) {
// 		this.mode = mode;
// 	}
// 
// 	public String getUsername() {
// 		return username;
// 	}
// 
// 	public void setUsername(String username) {
// 		this.username = username;
// 	}
// 
// 	public String getResultFilePath() {
// 		return resultFilePath;
// 	}
// 
// 	public void setResultFilePath(String resultFilePath) {
// 		this.resultFilePath = resultFilePath;
// 	}
// 
// 	public long getExecTime() {
// 		return execTime;
// 	}
// 
// 	public void setExecTime(long execTime) {
// 		this.execTime = execTime;
// 	}
// 
// 	public String getAddtime() {
// 		return addtime;
// 	}
// 
// 	public void setAddtime(String addtime) {
// 		this.addtime = addtime;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "QueryInfo [sql=" + sql + ", mode=" + mode + ", username="
// 				+ username + ", resultFilePath=" + resultFilePath
// 				+ ", execTime=" + execTime + ", addtime=" + addtime + "]";
// 	}
// }
// 
// Path: src/main/java/com/dianping/polestar/store/mysql/domain/QueryProgress.java
// public class QueryProgress {
// 	private String id;
// 	private String progressInfo;
// 
// 	public QueryProgress() {
// 	}
// 
// 	public QueryProgress(String id, String progressInfo) {
// 		this.id = id;
// 		this.progressInfo = progressInfo;
// 	}
// 
// 	public String getId() {
// 		return id;
// 	}
// 
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 
// 	public String getProgressInfo() {
// 		return progressInfo;
// 	}
// 
// 	public void setProgressInfo(String progressInfo) {
// 		this.progressInfo = progressInfo;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "QueryProgress [id=" + id + ", progressInfo=" + progressInfo
// 				+ "]";
// 	}
// }


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.dianping.polestar.store.mysql.dao.QueryDAO;
import com.dianping.polestar.store.mysql.domain.QueryInfo;
import com.dianping.polestar.store.mysql.domain.QueryProgress;
		AbstractApplicationContext cxt = new ClassPathXmlApplicationContext(
				"applicationContext.xml");
		queryDAOImp = (QueryDAO) cxt.getBean("queryDaoImpl");
	}

	@Test
	public void testInsertQueryInfo() {
		QueryInfo q = new QueryInfo();
		Date addtime = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		q.setUsername("xxx");
		q.setMode("hive");
		q.setResultFilePath("hdfs:////test");
		q.setSql("show tables;");
		q.setExecTime(600L);
		q.setAddtime(sdf.format(addtime));
		queryDAOImp.insertQueryInfo(q);
	}

	@Test
	public void testGetQueryByUsername() {
		List<QueryInfo> qs = queryDAOImp.findQueryInfoByUsername("yukang.chen");
		System.out.println(qs.size());
		for (int i = 0; i < qs.size(); i++) {
			System.out.println(qs.get(i));
		}
	}

	@Test
	public void testGetQueryProgress() {
// Path: src/main/java/com/dianping/polestar/store/mysql/dao/QueryDAO.java
// public interface QueryDAO {
// 
// 	public void insertQueryInfo(QueryInfo queryInfo);
// 
// 	public List<QueryInfo> findQueryInfoByUsername(String username);
// 
// 	public void insertQueryProgress(QueryProgress queryProgress);
// 
// 	public QueryProgress findQueryProgressById(String id);
// 
// 	public void insertQueryCancel(QueryCancel qc);
// 
// 	public List<QueryCancel> findQueryCancelWithouHost(String host);
// 
// 	public void deleteQueryCancelById(String id);
// }
// 
// Path: src/main/java/com/dianping/polestar/store/mysql/domain/QueryInfo.java
// public class QueryInfo {
// 	private String sql;
// 	private String mode;
// 	private String username;
// 	private String resultFilePath;
// 	private long execTime;
// 	private String addtime;
// 
// 	public QueryInfo() {
// 	}
// 
// 	public QueryInfo(Query q, QueryResult rs, long starttime) {
// 		setSql(q.getSql());
// 		setMode(q.getMode());
// 		setUsername(q.getUsername());
// 		setResultFilePath(rs.getResultFilePath());
// 		setExecTime(rs.getExecTime());
// 		setAddtime(EnvironmentConstants.DATE_FORMAT.format(new Date(starttime)));
// 	}
// 
// 	public String getSql() {
// 		return sql;
// 	}
// 
// 	public void setSql(String sql) {
// 		this.sql = sql;
// 	}
// 
// 	public String getMode() {
// 		return mode;
// 	}
// 
// 	public void setMode(String mode) {
// 		this.mode = mode;
// 	}
// 
// 	public String getUsername() {
// 		return username;
// 	}
// 
// 	public void setUsername(String username) {
// 		this.username = username;
// 	}
// 
// 	public String getResultFilePath() {
// 		return resultFilePath;
// 	}
// 
// 	public void setResultFilePath(String resultFilePath) {
// 		this.resultFilePath = resultFilePath;
// 	}
// 
// 	public long getExecTime() {
// 		return execTime;
// 	}
// 
// 	public void setExecTime(long execTime) {
// 		this.execTime = execTime;
// 	}
// 
// 	public String getAddtime() {
// 		return addtime;
// 	}
// 
// 	public void setAddtime(String addtime) {
// 		this.addtime = addtime;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "QueryInfo [sql=" + sql + ", mode=" + mode + ", username="
// 				+ username + ", resultFilePath=" + resultFilePath
// 				+ ", execTime=" + execTime + ", addtime=" + addtime + "]";
// 	}
// }
// 
// Path: src/main/java/com/dianping/polestar/store/mysql/domain/QueryProgress.java
// public class QueryProgress {
// 	private String id;
// 	private String progressInfo;
// 
// 	public QueryProgress() {
// 	}
// 
// 	public QueryProgress(String id, String progressInfo) {
// 		this.id = id;
// 		this.progressInfo = progressInfo;
// 	}
// 
// 	public String getId() {
// 		return id;
// 	}
// 
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 
// 	public String getProgressInfo() {
// 		return progressInfo;
// 	}
// 
// 	public void setProgressInfo(String progressInfo) {
// 		this.progressInfo = progressInfo;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "QueryProgress [id=" + id + ", progressInfo=" + progressInfo
// 				+ "]";
// 	}
// }


// Path: src/test/java/com/dianping/polestar/store/mysql/dao/impl/QueryDAOImpTest.java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.dianping.polestar.store.mysql.dao.QueryDAO;
import com.dianping.polestar.store.mysql.domain.QueryInfo;
import com.dianping.polestar.store.mysql.domain.QueryProgress;

		AbstractApplicationContext cxt = new ClassPathXmlApplicationContext(
				"applicationContext.xml");
		queryDAOImp = (QueryDAO) cxt.getBean("queryDaoImpl");
	}

	@Test
	public void testInsertQueryInfo() {
		QueryInfo q = new QueryInfo();
		Date addtime = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		q.setUsername("xxx");
		q.setMode("hive");
		q.setResultFilePath("hdfs:////test");
		q.setSql("show tables;");
		q.setExecTime(600L);
		q.setAddtime(sdf.format(addtime));
		queryDAOImp.insertQueryInfo(q);
	}

	@Test
	public void testGetQueryByUsername() {
		List<QueryInfo> qs = queryDAOImp.findQueryInfoByUsername("yukang.chen");
		System.out.println(qs.size());
		for (int i = 0; i < qs.size(); i++) {
			System.out.println(qs.get(i));
		}
	}

	@Test
	public void testGetQueryProgress() {
		queryDAOImp.insertQueryProgress(new QueryProgress("11111",