package com.test; import java.util.Date; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import com.entity.User; import com.hibernate.HibernateUtil; public class QueryTest { public static void main(String[] args) { User user = new User(); user.setName("name"); user.setBirthday(new Date()); HibernateUtil.addUser(user); query(user.getName()); } static void query(String name) { Session s = null; try { s = HibernateUtil.getSession(); String hql = "from User as user where user.name = ?"; Query query = s.createQuery(hql); query.setString(0, name); List<User> list = query.list(); for(User user:list) { System.out.println(user.getId() + " " + user.getName()); } } finally { if(s != null) { s.close(); } } } }
这段代码中,HibernateUtil是自己写的工具类,封装了一些方法。
上面代码中,先add一个新的user。然后使用query运行hql语句。
除了query.list();
还有常用的query.uniqueResult();
另外就是分页要用的方法:
query.setFirstResult(1);
query.setMaxResults(10);
package com.test; import java.util.Date; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; import com.entity.User; import com.hibernate.HibernateUtil; public class Cri { public static void main(String[] args) { User user = new User(); user.setName("xiaoy"); user.setBirthday(new Date()); HibernateUtil.addUser(user); cri(user.getName()); } static void cri(String name) { Session s = null; try { s = HibernateUtil.getSession(); Criteria cri = s.createCriteria(User.class); cri.add(Restrictions.eq("name", name)); List<User> list = cri.list(); for(User u:list) { System.out.print(u.getName() + " "); } } finally { if(s != null) { s.close(); } } } }
Criteria使用方法也很简单,主要看调用Restrictions来设置查询条件。