<?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.Final\lib\optional\c3p0下面找到与之匹配的包后重新引入,获得c3p0的 包装Connection。
如果在session中获得Connection?
@Test public void testDoWork() { session.doWork(new Work() { @Override public void execute(Connection connection) throws SQLException { System.out.println(connection); } }); }