Hibernate查询多个表的数据的方法
来源:互联网 发布:mac 复制 ntfs 编辑:程序博客网 时间:2024/06/05 18:47
Hibernate的查询方式具有面向对象的思想
在查询的时候,都是动过gei(id)的方式查询一条数据,然后Hibernate自动设置进去到POJO类对象,返回一个代理类给我们
这里有两个类,就不写get()和set()方法了
学生类
public class Student {private int id;private String name;//姓名private String stuCode;//学号private String gender;//性别private String age;//年龄private int classId;//班级id}
班级类
public class ClassInfo {private int Id;//班级idprivate String classCode;//班级编号}这种情况,如果一次要拿到学生的信息和班级信息
需要查询两次
第一次
Student stu = studentDao.get(id);
第二次
ClassInfo ci = classInfoDao.get(stu.getClassId());
或者
String hql = "SELECT s.name, s.stuCode, c.classCode FROM student AS s, classInfo AS c WHERE s.classId=c.id";
根据这个查询语句,调用query.list()方法得到一个List集合,
这个List中的每个对象都是Object类型,里面包含了查询出来的所有值。
但是Hibernate还支持另一种方式,就是增加一个新的映射类
这个新的映射类的属性,应该包含素有你需要查找的字段以及get()和set()方法
更重要的是,需要新增一个构造函数,这个构造函数的参数为你需要查询出来的属性,并且在构造函数里面为其赋值。
例如 【此处省略get()set()】
public class StuAndClass {//有参构造StuAndClass(String name, String stuCode, String classCode){this.name = name;this.stuCode = stuCode;this.classCode = classCode;}//用于接收查询结果的属性private String name;//姓名private String stuCode;//学号private String classCode;//班级编号}
然后查询的时候
String hql = "SELECT new com.test.StuAndClass(s.name, s.stuCode, c.classCode) FROM Student AS s, ClassInfo AS c WHERE s.classId = c.id";
通过 query.list() 方法,得到StuAndClass 的List集合
阅读全文
1 0
- Hibernate查询多个表的数据的方法
- Hibernate的查询方法
- hibernate的查询方法
- hibernate的查询方法
- 关于Hibernate映射视图后数据查询的方法
- hibernate的查询方法总结
- Hibernate 统一的查询方法
- hibernate的一些查询方法
- hibernate数据查询方法介绍
- Hibernate中的数据查询方法
- hibernate数据查询的几种方式
- hibernate 无法返回 查询的数据
- hibernate数据查询的几种方式
- hibernate数据查询的几种方式
- Hibernate查询数据的几种方式:
- Hibernate查询数据的五种方式
- hibernate中三种查询全部数据的api
- hibernate入门--实现简单的数据查询
- 使用任务简化异步编程
- 如何利用Python语言进行——航偏校正
- 机器学习算法总结--EM
- Catch That Cow (BFS)
- Laravel 手动分页实现详解
- Hibernate查询多个表的数据的方法
- 深机笔记
- Ubuntu下Opencv的idft实现Matlab的ifft2
- phantomjs 将html 转换为图片或者pdf
- coursera《机器学习》吴恩达-week1-03 梯度下降算法
- 设置全局结果视图(Struts框架)
- 数据结构与算法分析---第一章--练习1.3
- laravel连接数据库可能出现的小问题
- Oracle 导入、导出 本地&远程 数据