第一节:配置数据库连接池
这里配置c3p0连接池,需要的jar包:
jar包位于hibernate压缩包的:hibernate-release-4.3.5.Final\lib\optional\c3p0
文档中介绍了两种配置方式:
1)在hibernate.properties中配置:
2)在hibernate.cfg.xml中配置:
<hibernate-configuration> <session-factory> <!--数据库连接设置 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <!-- 方言 --> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 控制台显示SQL --> <property name="show_sql">true</property> <!-- 自动更新表结构 --> <property name="hbm2ddl.auto">update</property> <!-- 最小连接数 --> <property name="c3p0.min_size">7</property> <!-- 最大连接数 --> <property name="c3p0.max_size">42</property> <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 --> <property name="c3p0.timeout">1800</property> <!-- 最大的PreparedStatement的数量 --> <property name="c3p0.max_statements">50</property> <mapping resource="com/cy/model/Student.hbm.xml"/> </session-factory> </hibernate-configuration>
测试代码:
StudentTest.java:
@Test public void testSQLQuery(){ String sql = "select * from t_student"; Query query = session.createSQLQuery(sql).addEntity(Student.class); //查询student,绑定Student实体 List<Student> studentList = query.list(); for(Student s: studentList){ System.out.println(s); } }