Hibernate3 data query

Hibernate3 operates the database in the following three ways:
Hibernate3 operates the database, uses SQL and uses HQL
1. Use Hibernate to query all data and conditional queries

@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. Use SQL to query all data and conditional queries

//查询全部----使用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. Use HQL to query all data and conditional queries, (Hibernate Query Language), it is a completely object-oriented query statement, the query function is very powerful, with polymorphism, association and other characteristics. It should be noted here that the keywords in the HQL statement are not case sensitive, but the entity classes and object properties are case sensitive.

//查询全部----使用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();
}

Guess you like

Origin blog.csdn.net/weixin_44547592/article/details/108405689