• 攻城狮在路上(壹) Hibernate(十五)--- Hibernate的高级配置


    一、配置数据库连接池
      1、使用默认的数据库连接池
        Hibernate提供了默认了数据库连接池,它的实现类为DriverManegerConnectionProvider,如果在Hibernate的配置文件中没有明确配置任何连接池,Hibernate就会使用这个默认的连接池。
        注意:在开发正式的商业软件产品时,不能使用这个连接池,因为它不是成熟的专业连接池产品,缺乏响应大批量并发请求及荣错的能力。
      2、使用配置文件指定的数据库连接池
        hibernate.properties配置C3P0连接池的实例代码:

    hibernate.c3p0.min_size=5
    hibernate.c3p0.max_size=20
    hibernate.c3p0.timeout=300
    hibernate.c3p0.max_statements=50
    hibernate.c3p0.idle_test_period=3000

        c3p0的配置选项:

    配置选项 描述
    min_size 在连接池中可用的数据库连接的最少数目
    max_size 在连接池中可用的数据库连接的最大数目
    timeout 设定数据库连接的过期时间,以秒为单位。如果连接池中的某个数据库连接处于空闲状态的时间超过timeout时间,就会从连接池中清除。
    max_statements 可以被缓存的PreparedStatement实例的最大数目。缓存适量的PreparedStatement实例,能够大大提高Hibernate的性能。
    idle_test_period 在使数据库连接自动生效之前处于空闲状态的时间,以秒为单位。


        不同的连接池有不同的配置选项,在org.hibernate.cfg.Enviroment类的JavaDoc文档中,描述了当前Hibernate支撑的各种连接池的配置选项。
        如果使用用户提供的其他类型的连接池,首先要为这个连接池创建ConnectionProvider实现类,然后在配置文件中的hibernate.connection.provider_class=xxx显式指定。
      3、从容器中获取数据源
        在受管理环境中,容器负责构造数据源,即javax.sql.DataSource实例,然后发布为JNDI资源。
        在不受管理的环境中,有些Servlet容器,如tomcat,也能负责构造数据源,并发布weJNDI资源。
        以tomcat为例,配置分为两步:
        A、在tomcat的server.xml中增加配置:

    <Resuorce name="jdbc/SAMPLEDB"
      auth="Container/Application"
      type="javax.sql.DataSource"
      maxActive="100"
      maxIdle="30"
      maxWait="10000"
      username="root"
      password="1234"
      driverClassName="com.mysql.jdbc.Driver"
      url="jdbc:mysql://localhost:3306/SAMPLEDB?autoReconnect=true"/>

        B、在hibernate.properties中配置:

    hibernate.connection.datasource=java:comp/env/jdbc/SAMPLEDB

      4、有Java应用本身提供数据库连接
      使用SessionFactory.openSession(Connection conn);来实现。
      如果Session使用的是Java应用提供的Connection实例,那么Hibernate的二级缓存就会失效,Hibernate不能对同一个数据库事务执行的多条SQL语句进行跟踪。

    二、配置事务类型:暂不做理解。
    三、把SessionFactory与JNDI绑定:暂不做理解。
    四、配置日志:暂不做笔记。
    五、使用XML格式的配置文件
      在hibernate.cfg.xml中配置,实例代码:

    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
    <hibernate-configuration>
    <session-factory >
    <property name="dialect">
      org.hibernate.dialect.MySQLDialect
    </property>
    <property name="connection.driver_class">
      com.mysql.jdbc.Driver
    </property>
    <property name="connection.url">
      jdbc:mysql://localhost:3306/sampledb
    </property>
    <property name="connection.username">
      root
    </property>
    <property name="connection.password">
    1234
    </property>
    
    <property name="show_sql">true</property>
    
    <property name="use_sql_comments">
      true
    </property>
    
    <mapping resource="mypack/Customer.hbm.xml" />
    <mapping resource="mypack/Order.hbm.xml" />
    </session-factory>
    </hibernate-configuration>



  • 相关阅读:
    [MacOS]Sublime text3 安装(一)
    [RHEL8]开启BBR
    PAT Advanced 1136 A Delayed Palindrome (20分)
    PAT Advanced 1144 The Missing Number (20分)
    PAT Advanced 1041 Be Unique (20分)
    PAT Advanced 1025 PAT Ranking (25分)
    PAT Advanced 1022 Digital Library (30分)
    PAT Advanced 1019 General Palindromic Number (20分)
    PAT Advanced 1011 World Cup Betting (20分)
    PAT Advanced 1102 Invert a Binary Tree (25分)
  • 原文地址:https://www.cnblogs.com/tq03/p/3788698.html
Copyright © 2020-2023  润新知