您的位置:首页 > 产品设计 > UI/UE

hibernate基础之三个API的使用(Query,Criteria和SQLQuery)

2018-02-13 16:43 537 查看
hibernate中的API使用(Query,Criteria和SQLQuery)
Query对象(查询所有)
1、使用Query对象,不需要再写SQL语句,但是写hql(hibernate query language)语句;
2、hql和sql很相似,区别在于sql操作对象是表和表中的字段,而hql操作实体类和属性(如“from 实体类”);
3、Query对象的使用
        (1)使用session类的createQuery(参数)方法创建query对象,参数为hql语句如“from 实体类名”;

        (2)调用该query对象的list方法得到List<实体类> list的集合;

        (3)使用增强for循环遍历list输出。
Query query = session.createQuery("from User");
List<User> list = query.list();
for(User user:list) {
System.out.println(user);
}

Criteria对象(查询所有)
1、使用Criteria对象查询,使用时不需要写语句,直接调方法;
2、Criteria对象的使用
        (1)使用session类的createCriteria(参数)方法创建Criteria对象,参数为:实体类名.class;

        (2)使用该Criteria对象的list方法得到List<实体类> list集合;

        (3)使用增强for循环遍历list输出。
Criteria criteria = session.createCriteria(User.class);
List<User> list = criteria.list();

for (User user:list) {
System.out.println(user);
}

SQLQuery对象(不常用)
1、使用hibernate的SQLQuery对象时,可以调用底层的sql语句;
2、SQLQuery对象的使用方法之一
        (1)session的createSQLQuery(参数)创建SQLQuery对象,参数:“SQL语句”(“select * from table where *”);

        (2)调用SQLQuery对象的list()方法,返回list<object[]>集合,默认每部分都是数组结构;
        (3)使用增强for循环遍历输出(可以使用Arrays.toString(Object[])的方法帮助输出)。 SQLQuery sqlQuery = session.createSQLQuery("select * from t_User where uid>3");
List<Object[]> list = sqlQuery.list();
for (Object[] obj : list) {
System.out.println(Arrays.toString(obj));
}3、SQLQuery对象的使用方法之二
        (1)session的createSQLQuery(参数)创建SQLQuery对象,参数:“SQL语句”(“select * from table where *”);

        (2)调用SQLQuery对象的addEntity(参数)方法(将list方法的返回值设置为新的对象类),参数:实体类名.class

        (3)调用SQLQuery对象的list()方法,返回list<实体类名>集合;
        (3)使用增强for循环遍历输出。SQLQuery sqlQuery = session.createSQLQuery("select * from t_User where uid>3");
sqlQuery.addEntity(User.class);
List<User> list = sqlQuery.list();
for (User user : list) {
System.out.println(user);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息