JSP对接Android Studio连Oracle执行name_sql报不适当列名错误如何解决
错误根因
你的name_sql查询语句仅指定了返回CREW表的NAME字段,执行后得到的name_rs结果集里仅包含NAME一列,但后续代码尝试调用name_rs.getString("EMP_NO")读取结果集中不存在的EMP_NO字段,因此触发「不适当的列名」异常。
修正方案
因为name_sql的查询条件已经是EMP_NO=?,只要name_rs.next()返回true,就说明当前记录的EMP_NO必然和传入的login_fir_recvNo匹配,无需额外做等值判断,直接修改对应代码块即可:
// 原错误代码 // if(name_rs.next()){ // if(name_rs.getString("EMP_NO").equals(login_fir_recvNo)){ // returns=name_rs.getString("NAME"); // } // } // 修正后代码 if(name_rs.next()){ returns = name_rs.getString("NAME"); }
如果需要保留EMP_NO的判断逻辑,也可以调整name_sql把EMP_NO加入查询字段:
name_sql = "SELECT NAME, EMP_NO FROM CREW WHERE EMP_NO=?";
额外优化建议
当前代码三个查询并行执行,returns的返回值会被后执行的查询结果覆盖,比如第一阶段登录校验返回2,如果后续姓名查询命中,returns会被修改为姓名值,如果你期望不同场景返回固定的状态码,可以调整查询的执行分支,比如只在登录校验通过后再执行姓名查询。
内容的提问来源于stack exchange,提问作者Kangsman
相关产品推荐
相关产品推荐

