由于最近参加项目,使用到了spring+hiberante框架,鉴于一直对这块的配置模糊不清,所以整理学习。
参考网址:http://www.cnblogs.com/byqh/p/5595384.html
http://blog.csdn.net/startym/article/details/3342132
http://www.cnblogs.com/kevin-yuan/archive/2012/09/18/2690297.html 推荐
http://www.cnblogs.com/JamKong/p/4548785.html HD项目就是采用的这种配置。
Spring整合Hibernate的时候使用hibernate.cfg.xml
Spring整合Hibernate其实也就是把Hibernate的SessionFactory对象封装成:org.springframework.orm.hibernate3.LocalSessionFactoryBean
<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 使用hibernate.cfg.xml配置文件 --> <property name="configLocations"> <value>classpath:hibernate.cfg.xml</value> </property> .... </bean>
在hibernate.cfg.xml中配置数据库的其它配置:
<!-- 设置数据库方言 --> <property name="connection.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">update</property>
在Spring的applicationContext.xml文件中配置数据库的其它配置:
<!-- 相当于hibernate.cfg.xml配置的信息 --> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect" >org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property>
在hibernate.cfg.xml中配置数据库连接池:
<!-- 设置数据库驱动 --> <property name="connection.driver_class">com.mysql.jdbc.driver</property> <!-- 设置数据库链接地址 --> <property name="connection.url">jdbc:mysql://localhost:3306/oa</property> <!-- 设置数据库账户 --> <property name="connection.username">root</property> <!-- 设置数据库密码 --> <property name="connection.password"></property>......
在Spring的applicationContext.xml文件中配置数据库连接池:
<!-- 配置数据链接池 --> <property name="dataSource"><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 从jdbc.properties配置文件中获取值 --> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/oa"></property> <!-- 从jdbc.properties配置文件中获取值 --> <property name="driverClass" value="com.mysql.jdbc.driver"></property> <!-- 从jdbc.properties配置文件中获取值 --> <property name="user" value="root"></property> <!-- 从jdbc.properties配置文件中获取值 --> <property name="password" value=""></property> <property name="initialPoolSize" value="3"> </property> .....</property>
在hibernate.cfg.xml中配置实体对象的映射文件:
在hibernate.cfg.xml中配置实体对象的映射文件: <mapping resource="cn/czk/oa/domain/Department.hbm.xml" /> <mapping resource="cn/czk/oa/domain/Privilege.hbm.xml" /> <mapping resource="cn/czk/oa/domain/Role.hbm.xml" /> <mapping resource="cn/czk/oa/domain/User.hbm.xml" />
在Spring的applicationContext.xml中配置实体对象的映射文件
<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> ..... <!-- 配置映射文件 --> <property name="mappingResources"> <list> <value>cn/czk/oa/domain/User.hbm.xml</value> <value>cn/czk/oa/domain/Department.hbm.xml</value> <value>cn/czk/oa/domain/Role.hbm.xml</value> <value>cn/czk/oa/domain/Privilege.hbm.xml</value> </list> </property> ..... </bean>