java自定义动态链接数据库示例

代码如下:

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)

相关推荐

  • java使用jdbc链接Oracle示例类分享

    复制代码 代码如下: public class OracleJdbcTest   {       String driverClass = "oracle.jdbc.driver.OracleDriver"; Connection con; public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException       {

  • java获取百度网盘真实下载链接的方法

    本文实例讲述了java获取百度网盘真实下载链接的方法.分享给大家供大家参考.具体如下: 目前还存在一个问题,同一ip在获取3次以后会出现验证码,会获取失败,感兴趣的朋友对此可以加以完善. 返回的List<Map<String, Object>>  中的map包含:fileName( 文件名),url(实链地址) HttpRequest.java如下: import java.io.BufferedReader; import java.io.IOException; import

  • Java中实现获取路径的方法汇总

    一. java文件中获得路径 Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径 ClassLoader.getSystemResource("") Class_Name.class.getClassLoader().getResource("") Class_Name.class .getResource("/&qu

  • Java中使用HttpRequest获取用户真实IP地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了. 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.jb51.net / 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.110

  • JAVA获取文件绝对路径的方法

    本文实例讲述了JAVA获取文件绝对路径的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /** * 获取一个类的class文件所在的绝对路径. 这个类可以是JDK自身的类,也可以是用户自定义的类,或者是第三方开发包里的类. * 只要是在本程序中可以被加载的类,都可以定位到它的class文件的绝对路径. * * @param cls *            一个对象的Class属性 * @return 这个类的class文件位置的绝对路径. 如果没有这个类的定义,则返回nu

  • java正则表达式匹配网页所有网址和链接文字的示例

    复制代码 代码如下: import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.

  • java抓取网页数据获取网页中所有的链接实例分享

    效果图 复制代码 代码如下: import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.regex.Matcher;import java.util.regex.Pattern; p

  • java自定义动态链接数据库示例

    复制代码 代码如下: 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 =

  • java自定义类加载器代码示例

    如果要使用自定义类加载器加载class文件,就需要继承java.lang.ClassLoader类. ClassLoader有几个重要的方法: protectedClassLoader(ClassLoaderparent):使用指定的.用于委托操作的父类加载器创建新的类加载器. protectedfinalClass<?>defineClass(Stringname,byte[]b,intoff,intlen):将一个byte数组转换为Class类的实例. protectedClass<

  • Java 自定义动态数组方式

    Java自定义动态数组 1.静态数组向动态数组转变 (1)静态数组,数组空间固定长度 这个数组空间总长为4,如果此时新插入一个数据就会报数组空间不足 (2)静态数组如何转变成动态数组 第一步:创建一个空间是data数组两倍的newData数组(扩容): 第二步:把data数组中的元素全部赋值到newData数组: 2.数组扩容程序 // 数组扩容 private void resize(int newCapacity){ E[] newData = (E[]) new Object[newCap

  • java自定义日期转化类示例

    java自定义日期转化类 复制代码 代码如下: import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date; import org.apache.commons.beanutils.Converter; /** * 自定义 java.util.Date日期转换器 *  *  */public class MyDateConve

  • java使用jdbc操作数据库示例分享

    package dao; import java.sql.*; public class BaseDao { //oracle// private  static final String Dirver="oracle.jdbc.driver.OracleDriver";// private  static final String URL="jdbc:oracle:thin:@localhost:1521:XE";// private  static final

  • java&javascript自定义加密数据传输代码示例

    在开发应用过程中,客户端与服务端经常需要进行数据传输,涉及到重要隐私信息时,开发者自然会想到对其进行加密,即使传输过程中被"有心人"截取,也不会将信息泄露.对于加密算法,相信不少开发者也有所耳闻,比如MD5加密,Base64加密,DES加密,AES加密,RSA加密等等..可利用亦或,并,且,等进行简单加密. 示例代码中使用的^运算key=0x01,可自定义自己的规则.定义自己的运算,保证可逆数据不丢失即可.key也可定义,动态key. java代码 public static Stri

  • java动态构建数据库复杂查询教程

    有的时候,你需要动态构建一个比较复杂的查询条件,传入数据库中进行查询.而条件本身可能来自前端请求或者配置文件.那么这个时候,表达式树,就可以帮助到你. Where当中可以传入固定的条件 以下是一个简单的单元测试用例.接下来,我们将这个测试用例改的面目全非. [Test] public void Normal() { var re = Enumerable.Range(0, 10).AsQueryable() // 0-9 .Where(x => x >= 1 && x <

  • Java使用C3P0数据源链接数据库

    本文实例为大家分享了Java使用C3P0数据源链接数据库的具体代码,供大家参考,具体内容如下 1.相关jar包,这里需要3个jar包 2.具体链接数据库代码 ComboPooledDataSource类继承自AbstractComboPooledDataSource类,且AbstractComboPooledDataSource类实现了PooledDataSource接口 ComboPooledDataSource常用方法 (1).通过ComboPooledDataSource类直接创建数据源对

  • Java自定义线程池的实现示例

    目录 一.Java语言本身也是多线程,回顾Java创建线程方式如下: 二.JDK线程池工具类. 三.业界知名自定义线程池扩展使用. 一.Java语言本身也是多线程,回顾Java创建线程方式如下: 1.继承Thread类,(Thread类实现Runnable接口),来个类图加深印象. 2.实现Runnable接口实现无返回值.实现run()方法,啥时候run,黑话了. 3.实现Callable接口重写call()+FutureTask获取. public class CustomThread {

随机推荐