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

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

    /**
     * <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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值