Hibernate---SQL原生态查询

一、获取Session对象

//读取配置文件,创建Configuration
Configuration congiguration = new Configuration().configure();
//解析映射文件,创建SessionFactory
SessionFactory sf = configuration.buildSessionFactory();
//打开Session
Session session = sf.openSession();
//开启事务
Transaction tran = session.beginTransaction();
//接下来进行持久化操作

二、还是以Oracle中的Dept和Emp为例:

//查询指定工作Job和包含E字母的员工编号和姓名(使用addEntity()将Emp集映射成对象)
String sql = "select e.empno,e.ename from emp e where e.job=:job and e.ename like :ename ";
List<Object[]> list = session.createSQLQuery(sql).setString("job","SALESMAN").setString("ename","%E%").list();
for(Object[] obj:list){
    System.out.println(obj[0]+"....."+obj[1]);
}

//查询指定职位的员工,并打印员工姓名和所在部门名称
String sql = "select e.*,d.* from emp inner join dept on e.deptno = d.deptno and e.job = :job";
List<Object[]> list = session.createSQLQuery(sql).addEntity("e",Emp.class).addJoin("d","e.dept").setString("job","SALESMAN");
for (Object[] objects : list) {
    Emp emp = (Emp) objects[0];
    Dept dept = (Dept) objects[1];
    System.out.println(emp.getEname() +"....."+dept.getDname());
}
tran.commit();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值