学习Hibernate时,经常会遇到Hibernate.cfg.xml配置问题,这里将介绍Hibernate.cfg.xml配置问题的解决方法。
Hibernate的描述文件可以是一个properties属性文件,也可以是一个xml文件。下面讲一下Hibernate.cfg.xml配置。配置格式如下:
1. 配置数据源
可以Hibernate.cfg.xml配置JDBC,也可以配置JNDI.在本小节中讲述数据源如何配置。
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-configuration PUBLIC
- "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
- <hibernate-configuration>
- <session-factory>
- <!-- 各属性的配置-->
- <!—为true表示将Hibernate发送给数据库的sql显示出来 -->
- <property name="show_sql">true</property>
- <!-- SQL方言,这边设定的是MySQL -->
- <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
- <!-- 一次读的数据库记录数 -->
- <property name="jdbc.fetch_size">50</property>
- <!-- 设定对数据库进行批量删除 --
- <property name="jdbc.batch_size">30</property>
- <!—下面为JNDI的配置 -->
- <!-- 数据源的名称 -->
- <property name="connection.datasource">java:comp/env/jdbc/datasourcename</property>
- <!-- Hibernate的连接加载类 -->
- <property name="connection.provider_class">net.sf.hibernate.
connection.DatasourceConnectionProvider</property>- <property name="dialect">net.sf.hibernate.dialect.SQLServerDialect</property>
- <!—映射文件 -->
- <mapping resource="com/amigo/pojo/User.hbm.xml"/>
- <mapping resource="com/amigo/pojo/Org.hbm.xml"/>
- </session-factory>
- </hibernate-configuration>
2. c3p0连接池
c3p0连接池是Hibernate推荐使用的连接池,若需要使用该连接池时,需要将c3p0的jar包加入到classpath中。c3p0连接池的配置示例如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-configuration PUBLIC
- "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
- <hibernate-configuration>
- <session-factory
- <!-- 显示实际操作数据库时的SQL -->
- <property name="show_sql">true</property>
- <!-- SQL方言,这边设定的是MySQL -->
- <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
- <!--驱动程序,在后续的章节中将讲述mysql、sqlserver和Oracle数据库的配置 -->
- <property name="connection.driver_class">……</property
- <!-- JDBC URL -->
- <property name="connection.url">……</property>
- <!-- 数据库用户名 -->
- <property name="connection.username">user</property>
- <!-- 数据库密码 -->
- <property name="connection.password">pass</property>
- <property name="c3p0.min_size">5</property
- <property name="c3p0.max_size">20</property>
- <property name="c3p0.timeout">1800</property>
- <property name="c3p0.max_statements">50</property>
- <!-- 对象与数据库表格映像文件 -->
- <mapping resource="com/amigo/pojo/User.hbm.xml"/>
- <mapping resource="com/amigo/pojo/Org.hbm.xml"/>
- </session-factory>
- </hibernate-configuration>
在上述配置中,Hibernate根据配置文件生成连接,再交给c3p0管理。
【编辑推荐】