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

来源:互联网 发布:全知科技张超微博 编辑:程序博客网 时间:2024/06/06 03:45

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

    /**     * <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;    }
1 0