Hibernateと連携 †Spring側で設定したり、CommonsのDBCPを使用したり †<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> 既存のhibernate.cfg.xmlをそのまま使う †<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> などとしておかないとダメっぽい。 Hibernate Annotationを使う †先のsessionFactoryの設定に、以下のプロパティを追加します。 <property name="configurationClass"> <value>org.hibernate.cfg.AnnotationConfiguration</value> </property> WEBコンテナのコネクションプールを使う場合 †<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> スニペット †dataSource †<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> sessionFactory †
これだとAnnotationを使ったときにhibernate.cfg.xmlで書いていた <mapping class="nu.mine.kino.rss.hibernate.Rss" /> と等価の記述方法がないような。。。。どうすんのかな。
この記事は 現在のアクセス:20403 |