Hibernate查询所有数据的操作方式有三种。

  1、Query

    (1)使用该方法查询时,不需要编写sql语句,但是需要编写hql(Hibernate Query Language)语句,该语句是Hibernate查询语言。

    (2)hql语言操作的是实体类和实体类的属性,比如查询所有数据的hql语句为:from 实体类名称。

    (3)使用方法:首先创建Query对象,然后调用该对象的List方法返回数据集合。

    

@Test
public void test11(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createQuery方法创建Query对象。
* 参数为hql语句
* 使用QUERY对象的list方法获取数据集合
*/
Query query =session.createQuery("from UserEntity");
List<UserEntity> list = query.list();
//使用forEach遍历集合
for (UserEntity userEntity : list) {
System.out.println(userEntity);
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

  2、criteria

    (1)使用该对象不需要写hql语句,只需要指定实体类。

    (2)使用方法:首先创建criteria对象,然后调用list返回数据集合。

    

@Test
public void test12(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createCriteria方法创建criteria对象。
* 使用criteria对象的list方法获取数据集合
*/
Criteria criteria =session.createCriteria(UserEntity.class);
List<UserEntity> list = criteria.list();
//使用forEach遍历集合
for (UserEntity userEntity : list) {
System.out.println(userEntity);
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

  3、SQLQuery

    (1)使用该对象,需要写底层的SQL语句。

    (2)实现方法:首先创建该对象,然后调用list。

    

@Test
public void test13(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createSQLQuery方法创建SQLQuery对象。
* 使用qQLQuery对象的list方法获取数据集合,集合里面不是对象,而是数组
*/
SQLQuery qQLQuery =session.createSQLQuery("select * from t_user");
List<Object[]> list = qQLQuery.list();
//使用forEach遍历集合
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

    (3)数组转换成对象

      

@Test
public void test13(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createSQLQuery方法创建SQLQuery对象。
* 使用qQLQuery对象的list方法获取数据集合,集合里面不是对象,而是数组
*/
SQLQuery qQLQuery =session.createSQLQuery("select * from t_user");
        //将数组装载进实体中
qQLQuery.addEntity(UserEntity.class);
List<UserEntity > list = qQLQuery.list();
//使用forEach遍历集合
for (UserEntity userEntity : list) {
System.out.println(userEntity);
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

最新文章

  1. Hawk 4.3 转换器
  2. COM 组件基础——GUID 和 接口
  3. java:关于文件下载
  4. 20145334实验三《敏捷开发与XP实践》
  5. 都是以父元素的width为参照物的
  6. bzoj 2743 树状数组离线查询
  7. (剑指Offer)面试题17:合并两个排序的链表
  8. 解决JSP页面图片缓存问题
  9. cisco通过控制口或者通过远程配置交换机
  10. ubuntu下安装Vmare Workstation,并安装mac补丁
  11. eclipse 插件 最新 eclipse4.x 插件
  12. 错误记录--更改tomcat端口号方法,Several ports (8005, 8080, 8009)
  13. mysql错误集锦
  14. 【Django】优化小技巧之清除过期session
  15. mybatis多参数传递,延迟加载,缓存,注解开发
  16. C#解析json和xml数据
  17. php手撸轻量级开发(二)框架加载
  18. p3c安装使用 编码规范扫描 阿里巴巴出品,挺好用的
  19. 分库分表利器——sharding-sphere
  20. C#.NET常见问题(FAQ)-interface接口如何理解

热门文章

  1. Arcgis Android 常见问题
  2. Arduino I2C + 三轴加速度计ADXL345
  3. PMBOK项目管理思维导图梳理
  4. webapi之权限验证
  5. OI树上问题 简单学习笔记
  6. nowcoder(牛客网)提高组模拟赛第四场 解题报告
  7. kvm虚拟机时间配置
  8. mySQL授权(让从服务器用户可以登录到主服务器)
  9. json &quot;key&quot; 注意
  10. [转]IOS应用程序多语言本地化解决方案