连接数据库的有效方式(按性能)

时间:2014-09-21 11:06:07

标签: database java

我想构建一个连接数据库的程序。原则上,我的代码有效。我使用“Hibernante-4.3.1”和postgresql-driver“postgresql-9.3-1100.jdbc41.jar”。

我的persistence.xml如下所示:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence" version="1.0">
<persistence-unit name="******" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
  <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
  <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
  <property name="hibernate.connection.username" value="******"/>
  <property name="hibernate.connection.password" value="******"/>
  <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/*******"/>          
  <property name="hibernate.hbm2ddl.auto" value="create"/>        
</properties>
</persistence-unit>
</persistence>

对于localhost来说,它速度非常快,但如果我想通过互联网连接到外部服务器,建立连接大约需要30-60秒。一旦初始化,所有后续请求都执行得足够快,但第一次调用正在取消长时间。

我可以将整个项目重组为WEB项目,并通过JTA创建JBoss数据源。这样,连接在程序启动之前建立,一切都会好的。但如果我不必那样做,我会更喜欢它。这样连接的正确方法是什么?

编辑:更多信息:需要很长时间的行是:

javax.persistence.EntityManagerFactory emf = Persistence.createEntityManagerFactory("OneGramService");

问候, Rhodarus

1 个答案:

答案 0 :(得分:1)

尝试将hibernate.temp.use_jdbc_metadata_defaults属性设置为false。