<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"><value>org.gjt.mm.mysql.Driver</value></property> <property name="url"><value>jdbc:mysql://192.168.10.3/fuga</value></property> <property name="username"><value>hoge</value></property> <property name="password"><value>foo</value></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- Ver.3を使う場合は、hibernate3 --> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>Weight.hbm.xml</value> <value>Name.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> </bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>hibernate.cfg.xml</value> </property> </bean>
WEBアプリで使う場合は、<value>の値をhibernate.cfg.xmlのままだとクラスパス内を探してくれなかった。なぜかjndiがどうのこうのとか言ってる。
<value>/WEB-INF/hibernate.cfg.xml</value>
などとしておかないとダメっぽい。
先のsessionFactoryの設定に、以下のプロパティを追加します。
<property name="configurationClass"> <value>org.hibernate.cfg.AnnotationConfiguration</value> </property>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:comp/env/jdbc/MySqlDS</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>nu/mine/kino/rss/hibernate/Rss.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> </bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:comp/env/jdbc/MySqlDS</value> </property> </bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>org.gjt.mm.mysql.Driver</value> </property> <property name="url"> <value>jdbc:mysql://192.168.10.3/webdb1</value> </property> <property name="username"> <value>hoge</value> </property> <property name="password"> <value>huga</value> </property> </bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>nu/mine/kino/rss/hibernate/Rss.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> </bean>
これだとAnnotationを使ったときにhibernate.cfg.xmlで書いていた
<mapping class="nu.mine.kino.rss.hibernate.Rss" />
と等価の記述方法がないような。。。。どうすんのかな。
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>/WEB-INF/hibernate.cfg.xml</value> </property> <!-- また、Annotationを使う場合はConfigurationクラスを替える --> <property name="configurationClass"> <value>org.hibernate.cfg.AnnotationConfiguration</value> </property> </bean>
この記事は
現在のアクセス:20129