Hibernate花费大量时间连接数据库

时间:2016-03-30 06:59:02

标签: performance hibernate jpa database-connection

我将我的应用程序连接到数据库,Hibernate花费大量时间连接数据库。 如何为远程数据库连接配置persistence 这是我的persistence.xml

<properties>
        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/temp"/>
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
        <property name="hibernate.connection.username" value="user"/>
        <property name="hibernate.connection.password" value="user03022016"/>
        <property name="hibernate.archive.autodetection" value="class"/>
        <property name="hibernate.show_sql" value="true"/>
        <property name="hibernate.format_sql" value="true"/>
        <property name="hbm2ddl.auto" value="update"/>
    </properties>

这是我的函数,它调用连接和我发送查询的位置

public List<Posts> connect() throws UnsupportedEncodingException {
        EntityManager em=EntityManagerUtil.getEntityManagerFactory().createEntityManager();
        Query q=em.createQuery("Select p from Posts p");
        result=q.getResultList();
        return result;
    }

2 个答案:

答案 0 :(得分:0)

为了加快一点,一般将hibernate.show_sql和hibernate.format_sql改为false。对于连接,只需输入以下属性:

<property name="hibernate.temp.use_jdbc_metadata_default" value="false"/>

这将使您的会话构建更快。

答案 1 :(得分:0)

您是否配置了外部连接池,或者您使用的是内置连接池?如果你使用内置的,这可以解释为什么它花了4秒钟来获得连接,因为在最坏的情况下必须创建一个新的,这是昂贵的。

也许尝试配置外部连接池,如下所述: https://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch01.html