首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Hibernate里边使用sql查询

2012-09-28 
Hibernate里面使用sql查询hibernate3.0中是可以使用sql语句,但一般还是hql语句的,毕竟我们采用hibernate就

Hibernate里面使用sql查询

hibernate3.0中是可以使用sql语句,但一般还是hql语句的,毕竟我们采用hibernate就是为了使用o/r mapping,如果还用sql就没意义了.除非实在没有办法,不然不要用.
sql的查询:

Java代码?
  1. Query?query=session.createSQLQuery(??
  2. "select?{c.*}?from?CUSTOMERS?c?where?c.Name?like:customerName?","c",Customer.class);??
  3. query.setString("customerName","T%");??
  4. List?result=query.list();hql的左连接查询:??
  5. Query?query=session.createSQLQuery("from?Customer?c?left?join?fetch?c.orders?o"?+?"where?c.name?like?'T%'?");List?result=query.list();??
?

?

-------------------------------------------------------------------------

查看文章hibernate中使用session.createSQLQuery(sql)返回值的操作实例2009-07-29 23:25

session.createSQLQuery(sql) 返回的是一个List<Object[]>,对它的操作一般是遍历后,

用Object[]数组的元素来实例化一个对象

如:

Java代码?
  1. /***?@param?categoryid?顶级分类id?
  2. *?@return?AbstractCategory类型的集合?
  3. */public?List<AbstractBrand>?listAllBrandWithProductCount(int?categoryid){??
  4. StringBuffer?sql=new?StringBuffer();??
  5. sql.append("select?b.id,b.en_name,b.cn_name,count(*)?from?");??
  6. sql.append("brand?b,?product?p?");??
  7. sql.append("where?b.id=p.bid?and?p.cid=??");??
  8. sql.append("group?by?p.bid?");??
  9. List<Object[]>?result=?getSession()??
  10. .createSQLQuery(sql.toString())???
  11. .setParameter(0,?categoryid)??
  12. .list();??
  13. List<AbstractBrand>?brands=new?Vector<AbstractBrand>();??
  14. for(Object[]?datas?:result){??
  15. brands.add(new?AbstractBrand((Integer)datas[0],??
  16. datas[1].toString(),??
  17. datas[2].toString(),??
  18. ((BigInteger)datas[3]).intValue()));?return?brands;}??
?

谢谢分享

热点排行