您的位置:首页 > 编程语言 > Java开发

Mysql+java后台判断数据库表是否存在

2016-11-27 23:40 435 查看
问题背景:今日,由于项目中涉及到数据量过大,进行了按时间分表存储,这样在提取数据时,往往需要判断表(数据)是否存在。因此,在进行数据交互时,需要判断数据库中是否含有该表:

/**
* <Controller>
* 加载数据
* 前端界面简化
* 操作更简洁
*/
public void loadUPSChartData(){
//请求参数获取
int typeId = getParaToInt("type",1);
String stNumber = getPara("stNumber","");
String time = getPara("time","");
//动态生成表名
String tName = "T_DATAHIS_UPS_PM_"+time.substring(0, 4)+time.substring(5, 7);

//自定义判断表是否存在的方法
boolean tableIsExit = GisModle.dao.checkTableIsExist(tName);

//根据表是否存在返回数据与前端交互
if(!tableIsExit){
renderJson(new ResponseJson(ResultCode.FAIL));
}else{
List<HashMap<String, HashMap<String, Float>>> rel = GisModle.dao.loadUPSChartDataById(typeId,stNumber,time,tName);
renderJson(new ListJson<HashMap<String, HashMap<String, Float>>>(ResultCode.SUCC,rel));
}

}


/**
* <Dao>
* 判断表是否存在
* 关键语句: SHOW TABLES IN DB_DZJ_DGM WHERE Tables_in_DB_DZJ_DGM = ?
* SHOW TABLES IN + DB_NAME(数据库名) 查看目标库中所有的表名
* WHERE Tables_in_DB_DZJ_DGM = '查询目标(表名)'
*/
public boolean  checkTableIsExist(String tName){
boolean isExist = false;
String sql = "SHOW TABLES IN DB_DZJ_DGM WHERE Tables_in_DB_DZJ_DGM = ?";
Record rel = Db.findFirst(sql,tName);
if(rel!=null){
isExist = true;
}
return isExist;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: