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();
}