【问题标题】:java- how to check if value exists in JSP page?java-如何检查JSP页面中是否存在值?
【发布时间】:2019-08-11 00:20:14
【问题描述】:

我有一个函数可以检查 MYSQL 中的表中是否存在特定记录。

下面是这段代码:

public String get_value(long nodeid,String ts) {
    try {
        String sql="Select URL FROM urllink WHERE URL='f0="+nodeid+"&ts="+ts + "'";

        em.createNativeQuery(sql).getSingleResult();
        if (em == null) {
            throw new Exception("could not found URL object.");
        }
      //  return 1;

    } catch (Exception e) {
        e.printStackTrace();



    }
   return null;
}

在我的 JSP 页面中,我会调用这个函数并将参数传递给它。

String v=fileFacade1.get_value(fileID,date);

  if(v !=null ){ 

// if the records exist in the table, do this

}

我正在尝试调用该函数,因此如果表中有记录,则输入 if 语句并执行某些操作,但从我调试的内容来看,v 的值始终为空,但有来自 singleresult 的记录.

我是不是做错了什么?

编辑:

这就是现在的样子:

public String get_value(long nodeid,String ts) {
    try {
        String sql="Select URL FROM urllink WHERE URL='f0="+nodeid+"&ts="+ts + "'";
        if (em == null) {
            throw new Exception("could not found URL object.");
        }
        em.createNativeQuery(sql).getSingleResult();

        return (String)em.createNativeQuery(sql).getSingleResult();

      //  return 1;

    } catch (Exception e) {
        e.printStackTrace();



    }
  return null;
}

【问题讨论】:

  • em == null 并不是说​​“没有找到对象”而是“你的容器没有正确设置”。在使用 JPA 时,如果可能的话,我也会避免使用原始 Sql
  • 我认为throw new Exception("could not found URL object."); 没有用。你可以删除它if (em == null) { throw new Exception("could not found URL object."); }
  • @AkashShah 你说得对,那里有点毫无意义

标签: java mysql jdbc entitymanager


【解决方案1】:

你需要回getSingleResult()

return (String)em.createNativeQuery(sql).getSingleResult();

执行返回单个结果的 SELECT 查询。

【讨论】:

  • 那么我需要返回检索到的结果吗?然后在我的throw new Exception 中,它变得无法访问?
  • @Daredevil 你需要在使用em之前移动支票
  • @Daredevil 删除重复行 em.createNativeQuery(sql).getSingleResult();
  • @Daredevil 你不能,也只能接受答案(左边V号)
  • 谢谢,你让我头疼
【解决方案2】:

只需将您的代码包装在 if else 条件中,我的意思是当 em 为空时抛出异常或返回单个字符串,如以下代码 sn-p:

public String get_value(long nodeid,String ts) {
    try {
        String sql="Select URL FROM urllink WHERE URL='f0="+nodeid+"&ts="+ts + "'";
        if (em == null) {
            throw new Exception("could not found URL object.");
        }
        else{
           return (String)em.createNativeQuery(sql).getSingleResult();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
   return null;
}

【讨论】:

  • 这和我在编辑代码中显示的不一样
  • @Daredevil 您编辑的代码也不错,但犯了一个小错误,只需删除em.createNativeQuery(sql).getSingleResult();
【解决方案3】:

你的方法总是返回 null。

此外,也许这只是一个 sn-p 并且您的实际代码中缺少一些东西,但是 em 什么时候被实例化? (我假设它是一个类变量)

最后,您调用 getSingleResult 但没有对实际结果做任何事情,这是您应该返回的结果,如 @user7294900 的答案所示

return (String) em.createNativeQuery(sql).getSingleResult();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 2012-03-17
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2011-04-24
    相关资源
    最近更新 更多