Hibernate SQL方言 (hibernate.dialect)
數據庫 |
hibernate方言 |
DB2 | org.hibernate.dialect.DB2Dialect |
DB2 AS/400 | org.hibernate.dialect.DB2400Dialect |
DB2 OS390 | org.hibernate.dialect.DB2390Dialect |
PostgreSQL | org.hibernate.dialect.PostgreSQLDialect |
MySQL | org.hibernate.dialect.MySQLDialect |
MySQL with InnoDB | org.hibernate.dialect.MySQLInnoDBDialect |
MySQL with MyISAM | org.hibernate.dialect.MySQLMyISAMDialect |
Oracle (any version) | org.hibernate.dialect.OracleDialect |
Oracle 9i/10g | org.hibernate.dialect.Oracle9Dialect |
Sybase | org.hibernate.dialect.SybaseDialect |
Sybase Anywhere | org.hibernate.dialect.SybaseAnywhereDialect |
Microsoft SQL Server | org.hibernate.dialect.SQLServerDialect |
SAP DB | org.hibernate.dialect.SAPDBDialect |
Informix | org.hibernate.dialect.InformixDialect |
HypersonicSQL | org.hibernate.dialect.HSQLDialect |
Ingres | org.hibernate.dialect.IngresDialect |
Progress | org.hibernate.dialect.ProgressDialect |
Mckoi SQL | org.hibernate.dialect.MckoiDialect |
Interbase | org.hibernate.dialect.InterbaseDialect |
Pointbase | org.hibernate.dialect.PointbaseDialect |
FrontBase | org.hibernate.dialect.FrontbaseDialect |
Firebird | org.hibernate.dialect.FirebirdDialect |
<?xml version="1.0" encoding="GBK"?>
<!-- 指定Spring配置文件的Schema信息 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<!-- 定義數據源Bean,使用C3P0數據源實現 -->
<bean id="dataSource" destroy-method="close"
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 指定連接數據庫的驅動 -->
<!-- 指定連接數據庫的URL -->
<!-- 指定連接數據庫的用戶名 -->
<!-- 指定連接數據庫的密碼 -->
<!-- 指定連接數據庫連接池的最大連接數 -->
<!-- 指定連接數據庫連接池的最小連接數 -->
<!-- 指定連接數據庫連接池的初始化連接數 -->
<!-- 指定連接數據庫連接池的連接的最大空閑時間 -->
<!-- 連mysql
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/auction"/>
<property name="user" value="root"/>
<property name="password" value="32147"/>
<property name="maxPoolSize" value="40"/>
<property name="minPoolSize" value="1"/>
<property name="initialPoolSize" value="1"/>
<property name="maxIdleTime" value="20"/>
-->
<!--連MS-SQL-->
<property name="driverClassName"
value="net.sourceforge.jtds.jdbc.Driver"></property> <property
name="url"
value="jdbc:jtds:sqlserver://10.11.68.28:1433;DatabaseName=txDB"></property>
<property name="username" value="sa"></property>
<property name="password" value="Wang.Jun2009"></property>
<!-- 連 Oracle -->
<!--
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@10.12.3.106:1521:orcl"></property>
<property name="username" value="pms"></property>
<property name="password" value="zerobugpms"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<property name="defaultAutoCommit" value="true"></property>
-->
</bean>
<!-- 定義Hibernate的SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 依賴注入數據源,注入上面定義的dataSource -->
<property name="dataSource" ref="dataSource"/>
<!-- mappingResouces屬性用來列出全部映射文件 -->
<property name="mappingResources">
<list>
<!-- 以下用來列出Hibernate映射文件 -->
<value>org/crazyjava/auction/model/AuctionUser.hbm.xml</value>
<value>org/crazyjava/auction/model/Bid.hbm.xml</value>
<value>org/crazyjava/auction/model/Item.hbm.xml</value>
<value>org/crazyjava/auction/model/Kind.hbm.xml</value>
<value>org/crazyjava/auction/model/State.hbm.xml</value>
</list>
</property>
<!-- 定義Hibernate的SessionFactory的屬性 -->
<property name="hibernateProperties">
<props>
<!-- 指定數據庫方言 -->
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<!--
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLInnoDBDialect</prop>
-->
<!-- 是否根據需要每次自動創建數據庫 -->
<prop key="hibernate.hbm2ddl.auto">update</prop>
<!-- 顯示Hibernate持久化操作所生成的SQL -->
<prop key="hibernate.show_sql">true</prop>
<!-- 將SQL腳本進行格式化后再輸出 -->
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<!-- 配置Hibernate的局部事務管理器,使用HibernateTransactionManager類 -->
<!-- 該類實現PlatformTransactionManager接口,是針對Hibernate的特定實現-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!-- 配置HibernateTransactionManager時需要依注入SessionFactory的引用 -->
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置事務切面Bean,指定事務管理器 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 用於配置詳細的事務語義 -->
<tx:attributes>
<!-- 所有以'get'開頭的方法是read-only的 -->
<tx:method name="get*" read-only="true"/>
<!-- 其他方法使用默認的事務設置 -->
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<!-- 配置一個切入點,匹配指定包下所有以Impl結尾的類執行的所有方法 -->
<aop:pointcut id="leeService"
expression="execution(* org.crazyjava.auction.service.impl.*Impl.*(..))"/>
<!-- 指定在leeService切入點應用txAdvice事務切面 -->
<aop:advisor advice-ref="txAdvice"
pointcut-ref="leeService"/>
</aop:config>
<!-- 定義JavaMailSenderImpl,它用於發送郵件 -->
<bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<!-- 指定發送郵件的SMTP服務器地址 -->
<property name="host" value="smtp.163.com"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
<!-- 指定登錄郵箱的用戶名、密碼 -->
<property name="username" value="spring_test"/>
<property name="password" value="123abc"/>
</bean>
<!-- 定義SimpleMailMessage Bean,它代表了一份郵件 -->
<bean id="mailMessage"
class="org.springframework.mail.SimpleMailMessage">
<property name="from" value="spring_test@163.com"/>
<!-- 指定郵件標題 -->
<property name="subject" value="競價通知"/>
</bean>
<!-- 配置業務邏輯組件 -->
<bean id="mgr"
class="org.crazyjava.auction.service.impl.AuctionManagerImpl">
<!-- 為業務邏輯組件注入所需的DAO組件 -->
<property name="userDao" ref="auctionUserDao"/>
<property name="bidDao" ref="bidDao"/>
<property name="itemDao" ref="itemDao"/>
<property name="kindDao" ref="kindDao"/>
<property name="stateDao" ref="stateDao"/>
<property name="mailSender" ref="mailSender"/>
<property name="message" ref="mailMessage"/>
</bean>
<!-- 配置一個TimerTask Bean -->
<bean id="checkWiner" class="org.crazyjava.auction.schedule.CheckWiner">
<!-- 依賴注入業務邏輯組件 -->
<property name="mgr" ref="mgr"/>
</bean>
<!-- 將TimerTask Bean:checkWiner包裝成可周期性執行的任務調度Bean -->
<bean id="scheduledTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<!-- 指定調度頻率和延遲 -->
<property name="delay" value="0"/>
<property name="period" value="86400000"/>
<property name="timerTask" ref="checkWiner"/>
</bean>
<!-- 啟動實際調度 -->
<bean id="timerFactory"
class="org.springframework.scheduling.timer.TimerFactoryBean">
<!-- 下面列出所有需要調用的任務調度Bean -->
<property name="scheduledTimerTasks">
<list>
<ref bean="scheduledTask"/>
</list>
</property>
</bean>
</beans>