Hibernate框架的内连接和迫切内连接
来源:互联网 发布:搜狗拼音输入法云计算 编辑:程序博客网 时间:2024/05/16 18:18
public class HQLTest {
@Test
public void fun1(){
Session session=null;
Transaction tx=null;
try {
session = HibernateUtils.getSessionObject();//获取session对象
tx = session.beginTransaction();
// String hql="from Employee where eid=?"; //hql的语法,查询id有两种方式
String hql="from Employee where eid=:eid";
Query query = session.createQuery(hql);//hql的查询
query.setParameter("eid", 2);//在hql中占位符是从0开始计算的
// query.setParameter(0, 2);//在hql中占位符是从0开始计算的
List<Employee> list = query.list();
System.out.println(list);
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
}
}
@Test
public void fun2(){
Session session=null;
Transaction tx=null;
try {
session = HibernateUtils.getSessionObject();//获取session对象
tx = session.beginTransaction();
/*
* hql分页
*/
// String hql="from Employee";//分页查询,首先要查询出所有,在进行分页
// Query query = session.createQuery(hql);
// query.setFirstResult(0);//设置从那条数据开始
// query.setMaxResults(4);//设置当前页面展示数据的条数
// List<Employee> list = query.list();
// System.out.println(list);
/*
* hql的聚合函数语法 "select 聚合函数(字段名) from 实体类名称"
*/
// String hql="select count(*) from Employee";//查询当前记录数时返回的是Long类型
// String hql="select sum(eid) from Employee";
// String hql="select avg(*) from Employee";//平均数返回是double类型
// String hql="select max(eid) from Employee";//最大值和最小值返回int类型
// String hql="select min(*) from Employee";
// Query query = session.createQuery(hql);
// int num = (int) query.uniqueResult();
// System.out.println(num);
/*
* 投影查询,查部分字段
*/
// String hql="select eid,ename from Employee";
// Query query = session.createQuery(hql);
// List<Object[]> list = query.list();
// for (Object[] objects : list) {
// System.out.println(Arrays.toString(objects));
// }
/*
* 内连接,以数组方式进行存储
*/
// String hql="from Customer c inner join c.setPerson";
// Query query = session.createQuery(hql);
// List<Object[]> list = query.list();
// for (Object[] objects : list) {
// System.out.println(Arrays.toString(objects));
// }
/*
* 迫切内连接是以对象的方式进行存储的,和内连接的区别就是:
* 内连接返回是list集合中每部分数组
* 而迫切内连接返回list每部分是对象
*
*/
// String hql="from Customer c inner join fetch c.setPerson";
List<Customer> list = query.list();
for (Customer customer : list) {
System.out.println(customer);
}
/*
* 左连接 语法:from Customer c left outer join c.setPerson,
* 迫切左连接: from Customer c left outer join fetch c.setPerson
* 右连接:from Customer c right outer join c.setPerson,
* 迫切右连接:from Customer c right outer join fetch c.setPerson
*/
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
}
}
@Test
public void fun1(){
Session session=null;
Transaction tx=null;
try {
session = HibernateUtils.getSessionObject();//获取session对象
tx = session.beginTransaction();
// String hql="from Employee where eid=?"; //hql的语法,查询id有两种方式
String hql="from Employee where eid=:eid";
Query query = session.createQuery(hql);//hql的查询
query.setParameter("eid", 2);//在hql中占位符是从0开始计算的
// query.setParameter(0, 2);//在hql中占位符是从0开始计算的
List<Employee> list = query.list();
System.out.println(list);
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
}
}
@Test
public void fun2(){
Session session=null;
Transaction tx=null;
try {
session = HibernateUtils.getSessionObject();//获取session对象
tx = session.beginTransaction();
/*
* hql分页
*/
// String hql="from Employee";//分页查询,首先要查询出所有,在进行分页
// Query query = session.createQuery(hql);
// query.setFirstResult(0);//设置从那条数据开始
// query.setMaxResults(4);//设置当前页面展示数据的条数
// List<Employee> list = query.list();
// System.out.println(list);
/*
* hql的聚合函数语法 "select 聚合函数(字段名) from 实体类名称"
*/
// String hql="select count(*) from Employee";//查询当前记录数时返回的是Long类型
// String hql="select sum(eid) from Employee";
// String hql="select avg(*) from Employee";//平均数返回是double类型
// String hql="select max(eid) from Employee";//最大值和最小值返回int类型
// String hql="select min(*) from Employee";
// Query query = session.createQuery(hql);
// int num = (int) query.uniqueResult();
// System.out.println(num);
/*
* 投影查询,查部分字段
*/
// String hql="select eid,ename from Employee";
// Query query = session.createQuery(hql);
// List<Object[]> list = query.list();
// for (Object[] objects : list) {
// System.out.println(Arrays.toString(objects));
// }
/*
* 内连接,以数组方式进行存储
*/
// String hql="from Customer c inner join c.setPerson";
// Query query = session.createQuery(hql);
// List<Object[]> list = query.list();
// for (Object[] objects : list) {
// System.out.println(Arrays.toString(objects));
// }
/*
* 迫切内连接是以对象的方式进行存储的,和内连接的区别就是:
* 内连接返回是list集合中每部分数组
* 而迫切内连接返回list每部分是对象
*
*/
// String hql="from Customer c inner join fetch c.setPerson";
String hql="from Customer c left outer join fetch c.setPerson";
Query query = session.createQuery(hql);List<Customer> list = query.list();
for (Customer customer : list) {
System.out.println(customer);
}
/*
* 左连接 语法:from Customer c left outer join c.setPerson,
* 迫切左连接: from Customer c left outer join fetch c.setPerson
* 右连接:from Customer c right outer join c.setPerson,
* 迫切右连接:from Customer c right outer join fetch c.setPerson
*/
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
}
}
}
阅读全文
0 0
- Hibernate框架的内连接和迫切内连接
- Hibernate迫切左外连接和迫切内连接
- 内连接,外连接,交叉连接,迫切左外连接和迫切内连接
- Hibernate 学习笔记 之 HQL 内连接和迫切内连接
- 内连接,迫切内连接,左外连接,迫切左外连接
- 迫切左外连接、 左外连接、 迫切内连接、 内连接
- 内连接,迫切内连接,左外连接,迫切左外连接
- hibernate_day04_13_HQL多表查询(内连接和迫切内连接)
- hibernate的迫切连接问题
- 关于内连接、左外连接和迫切左外连接
- Hibernate查询-不迫切左连接与迫切的区别
- Hibernate中的迫切左外连接和左外连接
- 数据库的内连接和外连接
- 内连接和外连接的区别
- 数据库的内连接和外连接
- 数据库的内连接和外连接
- 内连接和等值连接的区别
- 内连接和外连接的区别
- C++primer学习笔记----智能指针
- OMNet++ 10 分钟教程
- IM多人聊天-群聊头像合成方法
- 使用百度前端EChart框架封装的Android版TAndroidEChart
- Linux umask 命令
- Hibernate框架的内连接和迫切内连接
- 淘淘商城系列——nginx基础学习
- CSS3 鲜为人知的属性-webkit-tap-highlight-color的理解
- 读写锁的使用
- android doubl 限制两位小数
- Qt之http通讯简单用法 /编写必应主页小爬虫,获取当日壁纸
- ssh某些用户登录不到服务器
- react native 混合开发代码示例
- [C++] 基类一定要定义虚析构函数