package com.oracle.core;
import com.oracle.bean.Salary;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import java.util.List;
public class SalaryQuery {
public static void main(String[] args) {
//解析配置文件
Configuration cfg=new Configuration();
cfg.configure();
//创建session工厂
SessionFactory sessionFactory = cfg.buildSessionFactory();
//从session工厂中获取session
Session session =sessionFactory.openSession();
//开启事务
session.beginTransaction();
//持久化操作 HQL语法 mysql oracle sql语法
//原则 类即表 属性即字段 不允许出现 * hql
//用别名来代替* 号
//select leav from t_salary
//select s from Salary s
//select leave
//查询的是所有 from 前面可以不用写 from Salary
//如果你当前查询的是所有的数据 hibernate自动帮助我们映射对对象
//如果你查询的是 几个字段 查询的结果Object的数组s
//单列得到的是 object的数据
Query query = session.createQuery("select s from Salary s");
//query 查询分析器
List<Salary> list1 = query.list();//获取查询出来的数据
for(Salary s:list1)
{
System.out.println(s);//重写toString方法
}
//单列得到的是 object的数据
query = session.createQuery("select s.leave from Salary s");
//query 查询分析器
List<Object> list2 = query.list();//获取查询出来的数据
for(Object s:list2)
{
System.out.println(s);
}
//查询多列 Object数组 每一列又是一个数组
query= session.createQuery("select s.uname,s.dept,s.leave from Salary s");
//query 查询分析器
List<Object[]> list3 = query.list();//获取查询出来的数据
for(Object[] s:list3)
{
for(Object ss:s)
{
System.out.println(ss);
}
}
//提交事务
session.getTransaction().commit();
//关闭session
session.close();
//关闭session工厂
sessionFactory.close();
}
}
Hibernate之简单的几种类型查询代码
最新推荐文章于 2020-04-17 16:49:42 发布