如何正确实现连接池的Hibernate连接工厂
问题描述:
我想用Hibernate来实现连接池。这是我的配置文件:如何正确实现连接池的Hibernate连接工厂
<hibernate-configuration>
<session-factory>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="jndi.url">jdbc/sqliteDB</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLiteDialect</property>
<property name="hibernate.connection.driver_class">org.sqlite.JDBC</property>
<property name="hibernate.connection.release_mode">auto</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.connection.autoReconnect">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping class="com.web.models.SystemUsers"/>
</session-factory>
</hibernate-configuration>
我试图实现这个工厂类:
public class HibernateUtil
{
private static final SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
static
{
try
{
StandardServiceRegistry standardRegistry
= new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
Metadata metaData
= new MetadataSources(standardRegistry).getMetadataBuilder().build();
sessionFactory = metaData.getSessionFactoryBuilder().build();
}
catch (Throwable th)
{
System.err.println("Enitial SessionFactory creation failed" + th);
throw new ExceptionInInitializerError(th);
}
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
}
当我运行2个请求,我得到错误的工厂被关闭。可能我的代码没有正确实现?
答
您没有配置到数据源的连接。相反的:
<属性名= “jndi.url”> JDBC/sqliteDB < /属性>
应该是:
<属性名= “hibernate.connection.datasource”> Java的:补偿/ env/jdbc/sqliteDB </property>
+0
如果它解决了你的问题请关闭并解释第二个问题,因为这是重复的 – xyz
请发布调用数据库访问的堆栈trance和代码。 – Justas