HQL中的原生SQL查询

原生SQL-内连接查询

public void sqlJoin(){
		session=HibernateUtil.getSession();
		sql="select {e.*},{d.*} from EMP e inner join DEPT d on e.DEPTNO=d.DEPTNO";
//给查询结果添加实体类,添加连接表的类属性
		Query query =session.createSQLQuery(sql).addEntity("e", Emp.class).addJoin("d", "e.dept");
		List<Object[]> objList=query.list();
		for(Object[] obj:objList){
			System.out.println(obj[0]+" "+obj[1]);
		}
		HibernateUtil.closeSession();
	}

//原生SQL查询-用List<Object[]>接收查询结果
@org.junit.Test

	public void sqlQuery2(){
			session=HibernateUtil.getSession();
			sql="select * from EMP";
			Query query =session.createSQLQuery(sql);
			List<Object[]> objList=query.list();
			for(Object[] obj:objList){
				System.out.println(obj[0]+" "+obj[1]+" "+obj[2]+" "+obj[3]+" "+obj[4]+" "+obj[5]+" "+obj[6]+" "+obj[7]);
			}
			HibernateUtil.closeSession();
		}

//原生SQL查询-在Query中addEntity(Emp.class),这样就可以List接收查询结果
@org.junit.Test

public void sqlQuery(){
		session=HibernateUtil.getSession();
		sql="select * from EMP";
		Query query =session.createSQLQuery(sql).addEntity(Emp.class);
		List<Emp> elist=query.list();
		for(Emp e:elist){
			System.out.println(e.getEname());
		}
		HibernateUtil.closeSession();
	}	

// 批量处理:JDBC

public void jdbcBatch() {
		session = HibernateUtil.getSession();
		tx = session.beginTransaction();
		Work work = new Work() {
			// 匿名内部类、Work实现类
			@Override
			public void execute(Connection conn) throws SQLException {
				sql = "update Emp set sal=sal+2";
				PreparedStatement pst = conn.prepareStatement(sql);
				pst.executeUpdate();
			}
		};
		session.doWork(work);
		tx.commit();
		HibernateUtil.closeSession();
	}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值