Hibernate3数据查询

tech2026-04-08  2

Hibernate3操作数据库有以下三种方式: Hibernate3的操作数据库、使用SQL和使用HQL 1.使用Hibernate进行查询全部数据和条件查询

@Test public void testSelectAllOne(){ //获取session Session session=HibernateSessionFactory.getSession(); //查询数据 List<User> users=session.createCriteria(User.class).list(); for (User user : users) { System.out.println(user.getUsername()); } //关闭session session.close(); } /*条件查询*/ @Test public void testSelectByOne(){ //1获取session Session session=HibernateSessionFactory.getSession(); //查询数据 eq:= gt:> le:<= ne:!= ge:>= lt:< like List<User> users=session.createCriteria(User.class) //.add(Restrictions.eq("userid", 1)) //.add(Restrictions.gt("userid", 1)) //.add(Restrictions.le("userid", 1)) .add(Restrictions.like("username", "%小%")) .list(); for (User user : users) { System.out.println(user.getUsername()); } //关闭session session.close(); }

2.使用SQL查询全部数据和条件查询

//查询全部----使用sql @Test public void selectAllTwo(){ // 获取Session Session session=HibernateSessionFactory.getSession(); String sql="select * from user"; // 根据sql创建SQLQuery SQLQuery query=session.createSQLQuery(sql).addEntity(User.class); List<User> users=query.list(); for (User user : users) { System.out.println(user.getUsername()); } // 关闭session session.close(); } //使用sql进行条件查询 @Test public void selectByTwo(){ Session session=HibernateSessionFactory.getSession(); String sql="select * from user where userid=?"; //根据sql创建SQLQuery SQLQuery query=session.createSQLQuery(sql).addEntity(User.class); //这里的索引是从0开始的 query.setInteger(0,1); /*List<User> users=query.list(); for (User user : users) { System.out.println(user.getUsername()+";"+user.getDetime()); }*/ //返回单条数据 User user=(User) query.uniqueResult(); System.out.println(user.getUsername()); session.close(); }

3.使用HQL查询全部数据和条件查询,(Hibernate Query Language),它是完全面向对象的查询语句,查询功能非常强大,具备多态、关联等特性 。这里需要注意的是:HQL语句中关键字不区分大小写,但是实体类和对象属性要区分大小写。

//查询全部----使用HQL @Test public void selectAllThree(){ Session session=HibernateSessionFactory.getSession(); String hql="from User";//这里的User是指po包中的User映射类,所有首字母要大写 //根据sql创建SQLQuery Query query=session.createQuery(hql); List<User> users=query.list(); for (User user : users) { System.out.println(user.getUsername()+";"+user.getDetime()); } //关闭session session.close(); } //使用hql进行条件查询 @Test public void selectByThree(){ Session session=HibernateSessionFactory.getSession(); String hql="from User u where u.userid=?"; //根据sql创建SQLQuery Query query=session.createQuery(hql); query.setInteger(0,1); /*List<User> users=query.list(); for (User user : users) { System.out.println(user.getUsername()+";"+user.getDetime()); }*/ //返回单条数据 User user=(User) query.uniqueResult(); System.out.println(user.getUsername()); //关闭session session.close(); }
最新回复(0)