数据源配置:
<?xml version="1.0" encoding="UTF-8"?> <Context path="/"> <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" type="javax.sql.DataSource" name="jdbc/datasuourcePool" url="jdbc:mysql://127.0.0.1:3306/hibernate?useUnicode=true&characterEncoding=GBK&autoReconnect=true" username="zhangh" password="123456" logAbandoned="true" maxActive="5" maxIdle="2" maxWait="5000" removeAbandoned="true" removeAbandonedTimeout="300" testOnReturn="true" testWhileIdle="true" validationQuery="select now()"/> </Context>
容器管理连接池,连接通过数据源取得
注意:数据库连接jar包要放到Tomcat(小弟用的是tomcat)的lib目录,不然会报找不到Driver的错误。我想原因大概是由容器管理连接池,就是在服务器启动的时候,就会建立好连接池,这个时候肯定是需要数据库连接的jar包。也就是连接的jar包在应用运行之前就已经使用到了,所以放在应用的lib下也不会解决问题。
<?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> <!-- 交由容器管理数据库连接池 --> <property name="connection.datasource">java:comp/env/jdbc/datasuourcePool</property> <property name="connection.provider_class">org.hibernate.connection.DatasourceConnectionProvider</property> <!-- 配置默认schema <property name="hibernate.default_schema" value="myschema"/> --> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">update</property> <!-- 配置实体映射 --> <mapping resource="com/akwolf/bean/Event.hbm.xml"/> </session-factory> </hibernate-configuration>