如何验证数据库中是否存在记录?
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");
}
以上是关于如何验证数据库中是否存在记录?的主要内容,如果未能解决你的问题,请参考以下文章