SSH 整合方式二:不带hibernate配置文件
与(十四)中的方式一相比,方式二就是将hibernate配置文件中的属性配置等等,转移到了spring的配置文件中而已,相当于是换了个地方设置这些属性。
配置完成后,就可以将hibernate的配置文件删除。
hibernate配置文件中有哪些内容
- 数据库连接的配置
- Hibernate的相关的属性的配置
- 方言
- 显示SQL
- 格式化SQL
- …
- C3P0连接池
- 映射文件
将Hibernate的配置交给Spring
创建一个properties文件存放数据库的连接参数,放在src下,然后交由spring引用:
jdbc.properties:
#定义连接参数
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/an?characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
jdbc.username=root
jdbc.password=root
接下来就是配置spring的配置文件:
也就是将原本在hibernate配置文件中定义的各种连接属性,直接在spring中设置,无需再引入。
applicationContext.xml
<!-- 引入外部属性文件=============================== -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 配置C3P0连接池=============================== -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--方式二的配置,不需要hibernate配置文件,也就是直接属性配置在spring中-->
<!-- Spring整合Hibernate -->
<!-- 引入Hibernate的配置的信息=============== -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource" ref="dataSource"/>
<!-- 配置Hibernate的相关属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<!-- 设置映射文件 -->
<property name="mappingResources">
<list>
<value>/ssh/domain/Customer.hbm.xml</value>
</list>
</property>
</bean>