最近做项目有几个需求,需要java来操作mysql和hive建表,插入数据等操作,趁现在有点时间还能记得,就赶紧记录一下
先说mysql的,校验table是否在某个库中存在,之前我已经写过了,所以点进去就可以查看;
接下来说是hive的,hive跟mysql有点区别,所以得自己手动去校验一下;
思路呢就是:先去查这个库下面的所有表信息,然后在遍历,在对比,如果一样返回true,否则就是false;
也许这是一个笨办法,但是也是解决办法,如果你有更好的解决办法,还请不吝赐教!
我这里用的是JdbcTemplate的方式,如果需要这种方式,就请翻翻我的博客吧,有些。。。
/**
* hive 校验表是否存在
* @param tableName
* @return
*/
public boolean validateTableNameExistByHive(String tableName){
//查询库中的所有表
String sql = " show tables in " +HiveDbName;
//返回 List<Map<String, Object>>
List<Map<String, Object>> count = hiveJdbcBaseDaoImpl.getJdbcTemplate().queryForList(sql);
for (Map<String, Object> map : count) {
for (String s : map.keySet()) {
//遍历校验是否有一致的表
if(tableName.equals(map.get(s))){
return true;
}
}
}
return false;
}
代码呢就这么简单,亲测有效。有问题可以留言讨论~