Hibernate

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- 连接数据库的基本信息 -->
        <property name="connection.username">root</property>
        <property name="connection.password">xxxx</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://192.168.31.222:3306/lhf</property>


        <!-- 配置hibernate的数据库方言 -->
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

        <!-- 是否在控制台打印sql -->
        <property name="show_sql">true</property>
        <!-- 是否在对sql进行格式化 -->
        <property name="format_sql">true</property>
        <!-- 指定程序运行时是否在数据库自动生成数据表 -->
        <property name="hbm2ddl.auto">update</property>
        <!-- 设置事务的隔离级别 -->
        <property name="hibernate.connection.isolation">2</property>

        <!-- 配置c3p0数据源 -->
        <property name="hibernate.c3p0.max_size">10</property>
        <property name="hibernate.c3p0.min_size">5</property>
        <property name="c3p0.acquire_increment">2</property>
        
        <property name="c3p0.idle_test_period">2000</property>
        <property name="c3p0.timeout">2000</property>
        
        <property name="c3p0.max_statements">10</property>

        <!-- 指定关联的映射文件 -->
        <mapping resource="com/hibernate/test/News.hbm.xml" />

    </session-factory>
</hibernate-configuration>

在配置的时候发现得到的connection是原生JDBC的,分析后发现引入的层c3p0 jar与当前的Hibernate版本不协调,在hibernate-release-5.1.13.Finalliboptionalc3p0下面找到与之匹配的包后重新引入,获得c3p0的 包装Connection。

如果在session中获得Connection?

@Test
    public void testDoWork() {
        session.doWork(new Work() {

            @Override
            public void execute(Connection connection) throws SQLException {
                System.out.println(connection);
            }
        });
    }
原文地址:https://www.cnblogs.com/pjlhf/p/8728249.html