可以让用户自定义动态链接数据库

适合java web项目,多数据库访问数据
标签: Hibernate

[1].[文件] HibernateSessionFactory.java ~ 2KB    下载(1) 跳至 [1]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package dao;
 
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
 
/**
  * @author minxuenetcn
  */
public class HibernateSessionFactory { 
   
     private final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); 
     private Configuration configuration = new Configuration();  
     private org.hibernate.SessionFactory sessionFactory; 
      
     /**
      * hibernate.cfg.xml
      * @param configFile
      */
     public void setConfiguration(String configFile){
         this .configuration= new Configuration();
         configuration.configure(configFile);
         
    
     /**
      * Returns the ThreadLocal Session instance.
      *  @return Session
      *  @throws HibernateException
      */ 
     public Session getSession() throws HibernateException { 
         Session session = (Session) threadLocal.get(); 
         if (session == null || !session.isOpen()) { 
             if (sessionFactory == null ) { 
                 rebuildSessionFactory(); 
            
             session = (sessionFactory != null ) ? sessionFactory.openSession() 
                     : null
             threadLocal.set(session); 
        
         return session; 
    
     /**
      *  Rebuild hibernate session factory
      *
      */ 
     public void rebuildSessionFactory() {  
     
         try
             sessionFactory = this .configuration.buildSessionFactory(); 
         } catch (Exception e) { 
             System.err 
                     .println( "%%%% Error Creating SessionFactory %%%%" ); 
             e.printStackTrace(); 
        
    
   
     /**
      *  Close the single hibernate session instance.
      *
      *  @throws HibernateException
      */ 
     public void closeSession() throws HibernateException { 
         Session session = (Session) threadLocal.get(); 
         threadLocal.set( null ); 
         if (session != null ) { 
             session.close(); 
        
    
     /**
      *  return session factory
      *
      */ 
     public org.hibernate.SessionFactory getSessionFactory() { 
         return sessionFactory; 
    
     /**
      *  return hibernate configuration
      */ 
     public Configuration getConfiguration() { 
         return configuration; 
    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值