Hibernate中三種常用的資料庫查詢
阿新 • • 發佈:2019-01-25
HQL查詢:
物件化查詢Criteria方法:public List<User> getUserByNameAndAge(String name, Integer age) { Session session = getSession(); //from後面是物件,不是表名 String FIND_USER_BY_ID = "from User where name=:name and age=:age"; Query query = session.createQuery(FIND_USER_BY_ID).setString( "name", name).setInteger("age", age); return query.list(); }
public User getUserById(Long id) {
Criteria criteria = getSession().createCriteria(User.class);
criteria.add(Restrictions.eq("id", id));
return (User)criteria.uniqueResult();
}
SQL查詢:
public User getUserById(Long id) { String sql = "select Id, Name, Age from User where Id=:Id"; SQLQuery query = getSession().createSQLQuery(sql); //設定引數 query.setParameter("Id", id); //設定查詢列的型別 query.addScalar("Id", new org.hibernate.type.LongType()); query.addScalar("Name", new org.hibernate.type.StringType()); query.addScalar("Age", new org.hibernate.type.IntegerType()); //設定查詢結果的物件型別 query.setResultTransformer(Transformers.aliasToBean(User.class)); return (User)query.uniqueResult(); }