Hibernate之简单的几种类型查询代码

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();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值