韩顺平hibernate session工具类

来源:互联网 发布:mac chrome插件下载 编辑:程序博客网 时间:2024/06/08 01:12

我们对获取session的工具类,升级,让它可以直接返回 全新的session和线程相关的session

代码:

packagecom.hsp.util;

importorg.hibernate.Session;

importorg.hibernate.SessionFactory;

importorg.hibernate.cfg.Configuration;

final publicclass HibernateUtil { //SqlHelper

     private static SessionFactorysessionFactory=null;

     //使用线程局部模式

     private static ThreadLocal<Session>threadLocal=new ThreadLocal<Session>();

     private HibernateUtil(){};

     static {

            sessionFactory=newConfiguration().configure("com/hsp/config/hsp.cfg.xml").buildSessionFactory();

     }

    

     //获取全新的全新的sesession

     public static Session openSession(){

            return sessionFactory.openSession();

     }

     //获取和线程关联的session

     public static Session getCurrentSession(){

           

            Session session=threadLocal.get();

            //判断是否得到

            if(session==null){

                   session=sessionFactory.openSession();

                   //把session对象设置到 threadLocal,相当于该session已经和线程绑定

                   threadLocal.set(session);

            }

            return session;

           

           

     }

    

    

}

 

u  query接口

通过query接口我们可以完成更加复杂的查询任务.

举例: 通过用户来查询数据.

快如入门:

Sessionsession=HibernateUtil.getCurrentSession();

Transaction ts=null;

try {

ts=session.beginTransaction();

//获取query引用[这里 Employee不是表.而是domain类名]

//[where 后面的条件可以是类的属性名,也可以是表的字段,安照hibernate规定,我们还是应该使用类的属性名.]

Query query=session.createQuery("fromEmployee where namehsp='shunping'");

//通过list方法获取结果,这个list会自动的将封装成对应的domain对象

//所以我们jdbc进行二次封装的工作没有.

List<Employee> list=query.list();

for(Employee e: list){

System.out.println(e.getAaaid()+""+e.getHiredate());

}

ts.commit();

} catch (Exception e) {

if(ts!=null){

ts.rollback();

}

throw new RuntimeException(e.getMessage());

}finally{

//关闭session

if(session!=null&&session.isOpen()){

session.close();

}

}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 cf端游爆破怕死怎么办 王者荣耀累计扣分12分怎么办 去医院看病没带身份证怎么办 ps4星战2鬼服怎么办 冒险岛英雄五转怎么办 6儿童视力低常怎么办 腰干活累的酸痛怎么办 狗狗体力很差怎么办啊 脉差总是五十多怎么办 吃过敏药嗜睡乏力怎么办 写字紧张心跳的快手抖怎么办 怀孕食欲差没精神怎么办 爬个三楼就喘了怎么办 头被篮球砸了怎么办 打球手指肿了很久怎么办 客人吃饭跑单了怎么办 脑子总是记不住东西怎么办 穿的鞋有味道怎么办 生完孩子血糖高怎么办 生了孩子子宫大怎么办 生完孩子阴吹怎么办 怀孕初期感冒嗓子发炎怎么办 脑子转不过来弯怎么办 他说我道行不深怎么办 鞋子内测磨破了怎么办 老公拉肚子拉的很厉害怎么办 老公拉肚子拉得很厉害怎么办 和老公吵架很厉害怎么办 新鞋鞋底吱吱响怎么办 新鞋鞋底滑了怎么办 工作中同事不配合怎么办 做体力活一身疼怎么办 大脑左则中动脉血管狭窄?怎么办 儿童体质差免疫力差怎么办 nba篮球大师体力不够怎么办 一千米差10秒怎么办 四十岁以后体力和耐力差怎么办 打篮球一打比赛就紧张怎么办 耐克空军鞋鞋底边胶掉了怎么办 鞋底踩到老鼠胶怎么办 头蒙怎么办最快最有效