HIBERNATE读书笔记

HIBERNATE读书笔记 

HIBERNAT的查询语言HQL:

当查询多个属性时,HIBERNATE默认返回的是一个数组来保存结果集,但是可以灵活改变为List,Map,和自定义的JAVA Bean。

1.默认情况,返回数组

String sql = "select id , title from Event" ;

       Query q  =  session.createQuery(sql);

       List<Object[]> list = q.list() ;

       for(Object[] o : list)

       {

           Integer id = (Integer)o[0];

           String title = (String)o[1];

           System.out.println(id);

           System.out.println(title);

       }

 

2.返回一个List

String sql = "select new List(id , title) from Event" ;

       Query q  =  session.createQuery(sql);

       List<Object[]> list = q.list() ;

       for(Object[] o : list)

       {

           Integer id = (Integer)o[0];

           String title = (String)o[1];

           System.out.println(id);

           System.out.println(title);

       }

 

3.返回一个Map

String sql = "select new Map(id , title) from Event";

       Query q = session.createQuery(sql);

       List<Map> list = q.list();

       for (Map o : list)

       {

           Set<Map.Entry> s = o.entrySet();

           System.out.println(s+"set");

           for(Map.Entry entry : s)

           {

              System.out.println(entry);

              System.out.println(entry.getKey());

              System.out.println(entry.getValue());

           }

       }

4.返回自定义的JAVA Bean

注意:自定义JAVA Bean 必须提供一个PUBLIC的构造函数,引用是必须包含完整的包点类名

String sql = "select new cn.coolbi.lcj.EventProxy(id , title) from Event";

       Query q = session.createQuery(sql);

       List<EventProxy> list = q.list();

       for (EventProxy o : list)

       {

           int date = o.getId() ;

           String title = o.getTitle() ;

          

           System.out.println(date);

           System.out.println(title);

          

       }

EventProxy代理类

package cn.coolbi.lcj;

 

public class EventProxy

{

    private int id ;

   

    private String title ;

   

    public EventProxy(int id ,String title)

    {

       this.id = id ;

       this.title = title ;

    }

 

    public int getId()

    {

       return id;

    }

 

    public void setId(int id)

    {

       this.id = id;

    }

 

    public String getTitle()

    {

       return title;

    }

 

    public void setTitle(String title)

    {

       this.title = title;

    }

}

 

 

 

Where条件查询时有四种方式设置条件的值,详细见上图:

1)通过set Properties();方法设置一下JAVABean时注意“:”后面没有空格

String sql = "select new cn.coolbi.lcj.EventProxy(id , title) from Event where id =:id and title =:title";

       Query q = session.createQuery(sql);

      

       //一个Event的代理类

       EventProxy up = new EventProxy(18,"hello");

       q.setProperties(up);

      

      

       List<EventProxy> list = q.list();

       for (EventProxy o : list)

       {

           int date = o.getId() ;

           String title = o.getTitle() ;

          

           System.out.println(date);

           System.out.println(title);

          

       }

 

 

<script></script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值