SqlRunner runner=new SqlRunner(connection);

try (Connection connection=this.jdbcDataSource.getJdbcConnection(this.devId)){
StringBuffer sql=new StringBuffer();
sql.append("select to_char(wm_concat(COLUMN_NAME)) KEY_NAME from user_cons_columns\n");
sql.append("\nwhere constraint_name = (\nselect constraint_name from user_constraints\n");
sql.append("\n where table_name = ? and constraint_type ='P')");

    SqlRunner runner=new SqlRunner(connection);
        final List<Map<String, Object>> map = runner.selectAll(sql.toString(), tableName);
        return map.get(0).get("KEY_NAME").toString();
    }catch (SQLException e){
        throw new CaptchaException("获取"+tableName+"表主键失败");
    }

final String sql = "select count(1) as COUNT from user_tables";
try (Connection connection=jdbcDataSource.getJdbcConnection(this.devId)){

        final SqlRunner sqlRunner=new SqlRunner(connection);
        final Map<String, Object> map = sqlRunner.selectOne(sql);
        num=Integer.parseInt(map.get("COUNT").toString());

    } catch (SQLException e) {
        throw new CaptchaException("数据库查询数量异常");
    }
    if (num<=0){
        num=0;
    }
    return num;

selectOne底层调用的是selectAll
用那个selectOne 如果查出来为空,然后直接.toString() 则可能会报错
那什么情况下用 selectOne 什么情况下用selectALL
你肯定查出来的结果不是null然后只有一条就可以用One
例如select count(1) from test

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容