package cn.jcenterhome.service;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import cn.jcenterhome.dao.DataBaseDao;
import cn.jcenterhome.util.BeanFactory;
import cn.jcenterhome.util.JavaCenterHome;
import cn.jcenterhome.vo.TableColumnsVO;
import cn.jcenterhome.vo.TableFieldVO;
import cn.jcenterhome.vo.TableStatusVO;
public class DataBaseService {
private DataBaseDao dataBaseDao = (DataBaseDao) BeanFactory.getBean("dataBaseDao");
public List<Map<String, Object>> executeQuery(String sql) {
return dataBaseDao.executeQuery(sql);
}
public List<String> executeQuery(String sql, int columnIndex) {
return dataBaseDao.executeQuery(sql, columnIndex);
}
public int executeUpdate(String sql) {
return dataBaseDao.executeUpdate(sql);
}
public Map<String, Object> execute(String sql) {
return dataBaseDao.execute(sql);
}
public int insert(String sql) {
return dataBaseDao.insert(sql);
}
public String findFirst(String sql, int columnIndex) {
return dataBaseDao.findFirst(sql, columnIndex);
}
public int findRows(String sql) {
return dataBaseDao.findRows(sql);
}
public long findTableSize(String sql) {
return dataBaseDao.findTableSize(sql);
}
public List<TableFieldVO> findTableFields(String tableName) {
return dataBaseDao.findTableFields(tableName);
}
public List<TableColumnsVO> findTableColumns(String tableName) {
return dataBaseDao.findTableColumns(tableName);
}
public List<TableStatusVO> findTableStatus(String sql) {
return dataBaseDao.findTableStatus(sql);
}
public String showVersion() {
return dataBaseDao.findFirst("SELECT VERSION()", 1);
}
public String showBasedir() {
return dataBaseDao.findFirst("SHOW VARIABLES LIKE 'basedir'", 2);
}
public String showCreateSql(String tableName) {
return dataBaseDao.findFirst("SHOW CREATE TABLE " + tableName, 2);
}
public List<String> showTableNames(String prefix) {
return dataBaseDao.executeQuery("SHOW TABLES LIKE '" + prefix + "%';", 1);
}
public int insertTable(String tableName, Map<String, Object> insertData, boolean returnId, boolean replace) {
String comma = "";
StringBuffer insertKey = new StringBuffer();
StringBuffer insertValue = new StringBuffer();
for (Entry<String, Object> entry : insertData.entrySet()) {
insertKey.append(comma + "`" + entry.getKey() + "`");
insertValue.append(comma + "'" + entry.getValue() + "'");
comma = ", ";
}
String sql = (replace ? "REPLACE" : "INSERT") + " INTO " + JavaCenterHome.getTableName(tableName)
+ " (" + insertKey + ") VALUES (" + insertValue + ")";
if (returnId && !replace) {
return dataBaseDao.insert(sql);
} else {
dataBaseDao.executeUpdate(sql);
return 0;
}
}
public void updateTable(String tableName, Map<String, Object> setData, Map<String, Object> whereData) {
String comma = "";
StringBuffer setSQL = new StringBuffer();
for (Entry<String, Object> entry : setData.entrySet()) {
setSQL.append(comma + "`" + entry.getKey() + "`='" + entry.getValue() + "'");
comma = ", ";
}
comma = "";
StringBuffer whereSQL = new StringBuffer();
if (whereData == null || whereData.isEmpty()) {
whereSQL.append("1");
} else {
for (Entry<String, Object> entry : whereData.entrySet()) {
whereSQL.append(comma + "`" + entry.getKey() + "`='" + entry.getValue() + "'");
comma = " AND ";
}
}
dataBaseDao.executeUpdate("UPDATE " + JavaCenterHome.getTableName(tableName) + " SET " + setSQL
+ " WHERE " + whereSQL);
}
@SuppressWarnings("unchecked")
public Map sqldumptable(List<String> excepttables, String table, int startfrom, long currsize,
long sizelimit, boolean complete, String version, int extendins, String sqlcompat,
String dumpcharset, String sqlcharset, boolean usehex) {
return dataBaseDao.sqldumptable(excepttables, table, startfrom, currsize, sizelimit, complete,
version, extendins, sqlcompat, dumpcharset, sqlcharset, usehex);
}
}