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个回答

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

newclassgood
天过无痕 这个问题有点智障了,我自己做测试的时候,根据增、改、删、查的顺序进行测试,在进行完删除测试后,我的is_delete字段是删除状态,我在plsql进行了修改,然后查看了下,发现状态是未删除状态,就进行了查询操作,但是其实并没有修改过来,事物进行了回滚,又变成了删除状态,所以我怎么查询都有问题,纯粹自己的原因,但是这位老哥的回答,也给我启示,感谢
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐