private static void query() {
Student student=new Student()
//创建离线正则对象
DetachedCriteria detachedCriteria=DetachedCriteria.forClass(Student.class)
//select name,age from t_student where sex='男'
detachedCriteria.setProjection(
Projections.projectionList()
.add(Projections.property("name"))
.add(Projections.property("age"))
)
detachedCriteria.add(Restrictions.eq("sex", "男"))
Session session=HibernateUtils.getSession()
//根据离线正则传递session对象后返回正则对象
Criteria criteria=detachedCriteria.getExecutableCriteria(session)
List<Object[]> list=criteria.list()
for(Object[] objs:list){
System.out.println(Arrays.toString(objs))
}
}
Session session=HibernateUtils.getSession()
//当检索结果不是实体时的用法
String sql="select name,age,sex from t_student where sex=?"
SQLQuery sqlQuery=session.createSQLQuery(sql)
sqlQuery.setString(0, "男")
List<Object[]> list=sqlQuery.list()
for(Object[] objs:list){
System.out.println(Arrays.toString(objs))
}
//将检索结果是实体时
String sql="select id,name,age,sex,email from t_student where sex=?"
SQLQuery sqlQuery=session.createSQLQuery(sql)
sqlQuery.setString(0, "男")
//给sqlQuery关联实体
sqlQuery.addEntity(Student.class)
List<Student> list=sqlQuery.list()
for(Student stu:list){
System.out.println(stu)
}