在 SSH (Struts2 + Spring + Hibernate) 基礎上進一步完善:
SessionFactory,避免手動 new 實例。lib/optional/c3p0/ 複製 C3P0 相關 JAR 至項目 lib 目錄。<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=webLastExam</property>
<property name="connection.username">sa</property>
<property name="connection.password">123456</property>
<property name="dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
<property name="connection.pool_size">5</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="entity/BookCard.hbm.xml"/>
<context:property-placeholder location="classpath:jdbcSql.properties" ignore-unresolvable="true"/>
<!-- 數據源:C3P0 連接池 -->
<bean id="myDataSourceSql" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
<property name="idleConnectionTestPeriod" value="300"/>
<property name="maxIdleTime" value="900"/>
<property name="maxPoolSize" value="2"/>
</bean>
<!-- SessionFactory 由 Spring 管理 -->
<bean id="mySessionFactorySql" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSourceSql"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.connection.autocommit">false</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="mappingResources">
<list><value>entity/BookCard.hbm.xml</value></list>
</property>
</bean>
<!-- DAO/Service/Action 注入鏈 -->
<bean id="myDaoImp" class="dao.MyDaoImp" scope="prototype">
<property name="sessionFactorySql" ref="mySessionFactorySql"/>
</bean>
<bean id="myServiceImp" class="services.MyServiceImp" scope="prototype">
<property name="md" ref="myDaoImp"/>
</bean>
<bean id="myActionService" class="action.ActionService" scope="prototype">
<property name="ms" ref="myServiceImp"/>
</bean>
jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=webLastExam
jdbc.user=sa
jdbc.password=123456
部署時僅需修改此文件,無需重新打包代碼。
BookCard.hbm.xml 保持原有結構,包含類映射、主鍵生成策略、屬性映射等。