Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 334|回复: 0

[Java框架学习]Hibernate通用数据库操作代码

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-11-7 00:01:39 | 显示全部楼层 |阅读模式
    insert方法
    public void insert(Object o){
         Session session = HibernateSessionFactory.currentSession();
         Transaction t = session.beginTransaction();
         session.save(o);
         t.commit();
         HibernateSessionFactory.clossSession();
    }

    delete方法
    public void delete(Object o,Serializable id){
         Session session = HibernateSessionFactory.currentSession():
         Transaction t = session.beginTransaction();
         Object o = session.get(o.class,id);
         if(o!=null){
             session.delete(o);
         }
         t.commit();
         HibernateSessionFactory.clossSession();
    }

    update方法
    public void update(Object o,Serializable id){
         Session session = HibernateSessionFactory.currentSession();
         Transaction t = session.beginTransaction();
         session.update(o,id);
         t.commit();
         HibernateSessionFactory.clossSession();
    }

    基于HQL的通用select方法
    public ArrayList select(String sql){
         Session session = HibernateSessionFactory.currentSession();
         Query query = createQuery(sql);
         List list = query.list();
         HibernateSessionFactory.clossSession();
         return (ArrayList)list;
    }

    基于SQL的通用select方法
    public ArrayList select(String sql) throws Exception{
         Session session = HibernateSessionFactory.currentSession();
         Connection con = session.connection();
         PreparedStatement pstmt = con.preparedStatement(sql);
         ResultSet rs = pstmt.executeQuery();
         ResultSetMetaData rsmd = rs.getMetaData();
         Hashtable ht = null;
         ArrayList array = new ArrayList();
         while(rs.next()){
             ht = new Hashtable();
             for(int i=0;i< rsmd.getColumnCount();i++){
                 ht.put(rsmd.getColumnName(i+1),rs.getObject(i+1));
             }
             array.add(ht);
         }
         HibernateSessionFactory.clossSession();
         return array;
    }

    附一个流行的:

    1. import org.hibernate.*;
    2. import org.hibernate.cfg.*;
    3. public class HibernateSessionFactory
    4. {
    5.     public static final SessionFactory sessionFactory;
    6.     static{
    7.         try{
    8.             //采用默认的hibernate.cfg.xml来启动一个Configuration的实例
    9.                         Configuration configuration=new Configuration().configure();
    10.                         //由Configuration的实例来创建一个SessionFactory实例
    11.             sessionFactory = configuration.buildSessionFactory();
    12.         }catch (Throwable ex){
    13.             // Make sure you log the exception, as it might be swallowed
    14.             System.err.println("Initial SessionFactory creation failed." + ex);
    15.             throw new ExceptionInInitializerError(ex);
    16.         }
    17.     }
    18.     //ThreadLocal并不是线程本地化的实现,而是线程局部变量。也就是说每个使用该变量的线程都必须为
    19.         //该变量提供一个副本,每个线程改变该变量的值仅仅是改变该副本的值,而不会影响其他线程的该变量
    20.         //的值.
    21.         //ThreadLocal是隔离多个线程的数据共享,不存在多个线程之间共享资源,因此不再需要对线程同步   
    22.         public static final ThreadLocal session = new ThreadLocal();
    23.     public static Session currentSession() throws HibernateException
    24.         {
    25.         Session s = (Session) session.get();
    26.         //如果该线程还没有Session,则创建一个新的Session
    27.         if (s == null)
    28.                 {
    29.             s = sessionFactory.openSession();
    30.             //将获得的Session变量存储在ThreadLocal变量session里
    31.             session.set(s);
    32.         }
    33.         return s;
    34.     }
    35.     public static void closeSession() throws HibernateException {
    36.         Session s = (Session) session.get();
    37.         if (s != null)
    38.             s.close();
    39.         session.set(null);
    40.     }
    41. }
    42.                           
    复制代码

       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/11/7/000138843.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-25 10:07 , Processed in 0.374272 second(s), 34 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表