天过无痕 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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)