天过无痕 2019-11-12 14:15 采纳率: 0%
浏览 127
已采纳

hql数据库操作,返回结果有问题,求解?

 public int createNameCheck(String createName,String saleId){
         String sql = "";
         sql = "select * from DATA_RRYX.T_PC_COMBINATION_SALE T where T.editor='"+createName+"'and T.id ='"+saleId+"'and T.is_delete = 'N'";
                int t = tpcCombinationSaleDAO.getRecordCountBySQL(sql);
                log.info("t"+t);
                return t;
     }
public int getRecordCountBySQL(String sql) {
        Session session = null;
        sql = "select count(*) from (" + sql +")";
        int result = 0;
        try {
            session = super.getSession();
            logger.debug("sql = " + sql);
            Query qry = session.createSQLQuery(sql);
            result = ((Number) qry.uniqueResult()).intValue();
        } catch (Exception e) {
            logger.error("获取SQL查询行数异常!getRecordCountBySQL(String)中。");
        } finally {

        }
        return result;
    }

这个查询数据库语句主要是查询 创建人、id以及是否删除的语句,然后调用的方法返回值就是查询到的数量,可是我传入创建人中文参数正确的时候,返回值为0,但是传入英文、数字都可查询到,如图下,plsql也能查到,请问大神有知道是什么原因吗?

图片说明
图片说明

  • 写回答

1条回答

  • zhshchilss 2019-11-12 16:21
    关注

    1.这个表,是只有这条中文数据不行,还是其他中文数据也不行
    2.其他表有中文数据的,能不能查询出来
    3.sql可以先写死一个sql,查询 slelect * from table where editor='中文' 看返回结果
    4.数字id可以查询出来,把数字id修改成你的 中文,然后这条记录能查询出来吗
    5.查询不出来的这个数据是怎么insert进去的,用工具开启事务了吗,有的需要commit数据库才真的保存进去
    6.看看这个表的编码和其他表有没有什么分别
    7.把这个表备份,然后新建一个同样的表,然后再查询看效果

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置