Java/Pingアプリケーション/SpringでDIしてDAOをつくる
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
----
//ここにコンテンツを記述します。
#contents
アプリケーションの設定はDIコンテナであるSpringを使用しま...
*** Hibernate関連のSpringの設定ファイル [#ba2b2963]
hibernate-spring.xmlという名前で、Hibernate関連のSpringの...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- WEBコンテナのDataSourceを使う設定 -->
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBea...
<property name="jndiName">
<value>java:comp/env/jdbc/MySqlDS</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessi...
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="configLocation">
<value>/WEB-INF/hibernate.cfg.xml</value>
<!-- Mappingクラスだけhibernate.cfg.xmlに書く -->
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</...
</property>
</bean>
</beans>
ちなみに、hibernate.cfg.xmlは以下のようにしました。基本的...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configurat...
<hibernate-configuration>
<session-factory>
<mapping class="nu.mine.kino.rss.hibernate.Rss" />
</session-factory>
</hibernate-configuration>
***DAOのインタフェース [#kce75adc]
また、[[RSSテーブル>Java/Pingアプリケーション/すでに打っ...
public interface RssDAO {
public Rss findById(int id);
public Rss[] findAll();
public void save(Rss rss);
public void delete(Rss rss);
}
***DAOの実装クラス [#bd19596f]
実装クラス([[RssDAOImpl:http://www.masatom.in/document/pi...
-Springが提供してくれる[[HibernateDaoSupport:http://www.s...
-[[HibernateDaoSupport:http://www.springframework.org/doc...
-DAOImpl自体のSpringの設定ファイルは、設定をソースコード...
としたいと思います。
/*******************************************************...
* Copyright (c) 2005 Masatomi KINO.
* All rights reserved.
* $Id: RssDAOImpl.java,v 1.2 2006/02/23 17:30:19 cvsuse...
*******************************************************...
//作成日: 2005/10/30
package nu.mine.kino.rss.dao;
import java.util.List;
import nu.mine.kino.rss.hibernate.Rss;
import org.springframework.orm.hibernate3.support.Hibern...
/**
* @author Masatomi KINO
* @version $Revision: 1.2 $
* @spring.bean id = "rssDao"
* @spring.property name = "sessionFactory" ref = "sessi...
*/
public class RssDAOImpl extends HibernateDaoSupport impl...
public Rss findById(int id) {
return (Rss) getHibernateTemplate().get(Rss.class, n...
}
public Rss[] findAll() {
List list = getHibernateTemplate().loadAll(Rss.class);
return (Rss[]) list.toArray(new Rss[list.size()]);
}
public void save(Rss rss) {
getHibernateTemplate().save(rss);
}
public void delete(Rss rss) {
getHibernateTemplate().delete(rss);
}
}
クラスコメントの
* @spring.bean id = "rssDao"
* @spring.property name = "sessionFactory" ref = "sessio...
によって、
-このクラスのidはrssDaoであること
-([[HibernateDaoSupport:http://www.springframework.org/do...
ということになります。XDocletを通すことによってbean.xmlと...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans
default-autowire="no"
default-lazy-init="false"
default-dependency-check="none"
>
<bean
id="rssDao"
class="nu.mine.kino.rss.dao.RssDAOImpl"
>
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
</beans>
#ref(bean.png)
#ref(EA4.png)
これで、以下のようにRSSテーブルにアクセスすることができる...
import nu.mine.kino.rss.dao.RssDAO;
import nu.mine.kino.rss.hibernate.Rss;
import org.apache.log4j.BasicConfigurator;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlA...
/**
* @author Masatomi KINO
* @version $Revision: 1.1 $
*/
public class TestDAOMain {
public static void main(String[] args) {
BasicConfigurator.configure();
System.out.println("Start.");
ApplicationContext factory = new ClassPathXmlApplica...
new String[] { "hibernate-spring.xml", "beans.xm...
RssDAO rssDAO = (RssDAO) factory.getBean("rssDao");
Rss[] rsss = rssDAO.findAll();
for (Rss rss : rsss) {
System.out.printf("%2d - %s%n", rss.getId(), rss.g...
System.out.println(rss);
}
System.out.println("End.");
}
}
----
この記事は
#vote(おもしろかった[9],そうでもない[3])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
#topicpath
----
//ここにコンテンツを記述します。
#contents
アプリケーションの設定はDIコンテナであるSpringを使用しま...
*** Hibernate関連のSpringの設定ファイル [#ba2b2963]
hibernate-spring.xmlという名前で、Hibernate関連のSpringの...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- WEBコンテナのDataSourceを使う設定 -->
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBea...
<property name="jndiName">
<value>java:comp/env/jdbc/MySqlDS</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessi...
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="configLocation">
<value>/WEB-INF/hibernate.cfg.xml</value>
<!-- Mappingクラスだけhibernate.cfg.xmlに書く -->
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</...
</property>
</bean>
</beans>
ちなみに、hibernate.cfg.xmlは以下のようにしました。基本的...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configurat...
<hibernate-configuration>
<session-factory>
<mapping class="nu.mine.kino.rss.hibernate.Rss" />
</session-factory>
</hibernate-configuration>
***DAOのインタフェース [#kce75adc]
また、[[RSSテーブル>Java/Pingアプリケーション/すでに打っ...
public interface RssDAO {
public Rss findById(int id);
public Rss[] findAll();
public void save(Rss rss);
public void delete(Rss rss);
}
***DAOの実装クラス [#bd19596f]
実装クラス([[RssDAOImpl:http://www.masatom.in/document/pi...
-Springが提供してくれる[[HibernateDaoSupport:http://www.s...
-[[HibernateDaoSupport:http://www.springframework.org/doc...
-DAOImpl自体のSpringの設定ファイルは、設定をソースコード...
としたいと思います。
/*******************************************************...
* Copyright (c) 2005 Masatomi KINO.
* All rights reserved.
* $Id: RssDAOImpl.java,v 1.2 2006/02/23 17:30:19 cvsuse...
*******************************************************...
//作成日: 2005/10/30
package nu.mine.kino.rss.dao;
import java.util.List;
import nu.mine.kino.rss.hibernate.Rss;
import org.springframework.orm.hibernate3.support.Hibern...
/**
* @author Masatomi KINO
* @version $Revision: 1.2 $
* @spring.bean id = "rssDao"
* @spring.property name = "sessionFactory" ref = "sessi...
*/
public class RssDAOImpl extends HibernateDaoSupport impl...
public Rss findById(int id) {
return (Rss) getHibernateTemplate().get(Rss.class, n...
}
public Rss[] findAll() {
List list = getHibernateTemplate().loadAll(Rss.class);
return (Rss[]) list.toArray(new Rss[list.size()]);
}
public void save(Rss rss) {
getHibernateTemplate().save(rss);
}
public void delete(Rss rss) {
getHibernateTemplate().delete(rss);
}
}
クラスコメントの
* @spring.bean id = "rssDao"
* @spring.property name = "sessionFactory" ref = "sessio...
によって、
-このクラスのidはrssDaoであること
-([[HibernateDaoSupport:http://www.springframework.org/do...
ということになります。XDocletを通すことによってbean.xmlと...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans
default-autowire="no"
default-lazy-init="false"
default-dependency-check="none"
>
<bean
id="rssDao"
class="nu.mine.kino.rss.dao.RssDAOImpl"
>
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
</beans>
#ref(bean.png)
#ref(EA4.png)
これで、以下のようにRSSテーブルにアクセスすることができる...
import nu.mine.kino.rss.dao.RssDAO;
import nu.mine.kino.rss.hibernate.Rss;
import org.apache.log4j.BasicConfigurator;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlA...
/**
* @author Masatomi KINO
* @version $Revision: 1.1 $
*/
public class TestDAOMain {
public static void main(String[] args) {
BasicConfigurator.configure();
System.out.println("Start.");
ApplicationContext factory = new ClassPathXmlApplica...
new String[] { "hibernate-spring.xml", "beans.xm...
RssDAO rssDAO = (RssDAO) factory.getBean("rssDao");
Rss[] rsss = rssDAO.findAll();
for (Rss rss : rsss) {
System.out.printf("%2d - %s%n", rss.getId(), rss.g...
System.out.println(rss);
}
System.out.println("End.");
}
}
----
この記事は
#vote(おもしろかった[9],そうでもない[3])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: