如何验证数据库中是否存在记录?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何验证数据库中是否存在记录?相关的知识,希望对你有一定的参考价值。

我需要验证数据库中是否存在记录,但无论我传递给以下代码的id如何,它都不会显示任何内容。记录是否存在。

       session = HibernateUtil.getSession();
        session.beginTransaction();
        Query q = session.createQuery("select count(*) from Users where id = :id");
        q.setInteger("id", id);
        Integer count = (Integer)q.uniqueResult();
        if(count > 0) {
            System.err.println(">");
        }
        else {
            System.err.println("<");
        }
        session.getTransaction().commit();
        session.close();

我也使用了以下代码,但仍然有同样的问题

  try{
        session = HibernateUtil.getSession();
        session.beginTransaction();
        Users users = null;
        users = (Users) session.load(Users.class, id);
    }catch(Exception e){
              System.err.println("<");
      }
答案

尝试使用投影来获得结果。

    session = sessionFactory.openSession();
    session.beginTransaction();
    Criteria criteria = session.createCriteria(Users.class);
    criteria.add(Restrictions.eq("Id", Id));
    criteria.setProjection(Projections.rowCount());
    long count = (Long) criteria.uniqueResult();
    session.getTransaction().commit();
   if(count != 0){
       System.out.println("present");
   else{
       System.out.println("absent");
   }
另一答案

你可以简单地使用Session.load方法,如果不存在,将抛出HibernateException

Session session = // get session..
Users u = null;
try {
  u = (Users) session.load(Users.class, userId);
} catch (HibernateException e) {
  // No Users with id 'userId' exists
}
另一答案

使用session.get方法,并在这种情况下仅使用异常

 try
   {s = (student) session1.get(student.class, 16);
   System.out.println("the result is"+s.marks);
   } 


 catch(Exception e)
   {

    System.out.println("none");
 }

以上是关于如何验证数据库中是否存在记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何验证输入电子邮件是不是已存在于数据库中?

django怎么判断数据库的记录是不是存在

验证一个值是否已经存在数据表中

Django之form组件提交数据如何验证数据库中是否存在

c#.net写了一个注册页面,请问如何验证该账号已经存在

R Shiny中是否存在全局变量?