hibernate执行原生SQL


DAO类首先是继承了HibernateDaoSupport  类的

//这里是一个查询在<pre name="code" class="java">getHibernateTemplate()对象的execute()方法这里需要一个内部类 执行<span style="font-family: Arial, Helvetica, sans-serif;">doInHibernate()方法</span>
 
public int executeUpdateSql(final String sql) 
	{  
		return (Integer)getHibernateTemplate().execute(new HibernateCallback(){  
	          public Object doInHibernate(Session session)  
	            throws HibernateException, SQLException {   
	        Query query = session.createSQLQuery(sql);  
	        return query.executeUpdate();
	    }  
	      }); 
	} 


public List<String[]>queryPagerListWithArrayBySql(final String countSql,final String strSql,Pager pager){
		List<String[]>result= new ArrayList<String[]>();
		try{
			List<Object[]> items= (List<Object[]>) this.getHibernateTemplate().executeFind(new SqlPageSupport(countSql, strSql, pager));
			for(Object[] objs : items){
				String []s = new String[objs.length];
				for(int i=0;i<objs.length;i++){
					s[i]=(objs[i]==null?"":String.valueOf(objs[i]));
				}
				result.add(s);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return result;
	}
public List<String[]> queryListWithArrayBySql(final String strSql){
		List<String[]>result= new ArrayList<String[]>();
		try{
			List<Object[]> items= (List<Object[]>) this.getHibernateTemplate().execute(new HibernateCallback() { 
				public Object doInHibernate(Session session) throws HibernateException {
	
					//query
					Query query = session.createSQLQuery(strSql); 
					List list = query.list();
					return list; 
					
				  }
				});
			for(Object[] objs : items){
				String []s = new String[objs.length];
				for(int i=0;i<objs.length;i++){
					s[i]=(objs[i]==null?"":String.valueOf(objs[i]));
				}
				result.add(s);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return result;
	}
	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值