kapok

          垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks

          http://www.aygfsteel.com/jinfeng_wang/archive/2005/03/03/1654.html

          Spring
          封裝Hibernate

            有兩種手段:1、使用HibernateTemplate2、繼承HibernateDaoSupport(實際上,HibernateDaoSupport本身就是對HibernateTemplate的一個封裝)

             一切盡在代碼中,查看API唉!

          注意:hibernate 2.X和hibernate3.X的區別,我用的是2.X 。  
           

          package com.company.example.dao;

           

          import java.util.List;

           

          import com.company.example.model.Student;

           

          public interface StudentDao {

              public abstract Student getStudent(final Integer id);

              public abstract void updateStudent(Student student);

              public abstract List findStudentsByLastName(String lastName);

          }

          ==================

          package com.company.example.dao.hibernateImpl;

           

          import java.util.List;

           

          import net.sf.hibernate.Hibernate;

          import net.sf.hibernate.HibernateException;

          import net.sf.hibernate.Session;

           

          import org.springframework.orm.hibernate.HibernateCallback;

          import org.springframework.orm.hibernate.HibernateTemplate;

           

          import com.company.example.dao.StudentDao;

          import com.company.example.model.Student;

           

          public class StudentDaoHibernate implements StudentDao {

              HibernateTemplate hibernateTemplate;

           

              public static void main(String[] args) {

              }

           

              public HibernateTemplate getHibernateTemplate() {

                  return hibernateTemplate;

              }

           

              public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {

                  this.hibernateTemplate = hibernateTemplate;

              }

           

              public Student getStudent(final Integer id) {

                  return (Student) hibernateTemplate.execute(new HibernateCallback() {

                      public Object doInHibernate(Session session)

                              throws HibernateException {

                          return session.load(Student.class, id);

                      }

                  });

              }

           

              public Student getStudent2(Integer id) {

                  return (Student) hibernateTemplate.load(Student.class, id);

              }

           

              public void updateStudent(Student student) {

                  hibernateTemplate.update(student);

              }

           

              public List findStudentsByLastName(String lastName) {

                  return hibernateTemplate.find("from Student student "

                          + "where student.lastName = ?", lastName, Hibernate.STRING);

              }

          }

          public class StudentDaoHibernate extends HibernateDaoSupport

          implements StudentDao {

           ...........

          }
          ======The Spring XML Configuration===========
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
          "http://www.springframework.org/dtd/spring-beans.dtd">
          <beans>
           <bean id="dataSource"
            class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName">
             <value>java:comp/env/jdbc/trainingDatasource</value>
            </property>
           </bean>
           
           <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
            <property name="dataSource">
             <ref bean="dataSource"/>
            </property>
            <property name="hibernateProperties">
             <props>
              <prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
             </props>
            </property>
            <property name="mappingResources">
             <list> <!--list of each hbm.xml-->
              <value>Student.hbm.xml</value>
              <value>Course.hbm.xml</value>
             </list>
            </property>
            <property name="mappingDirectoryLocations">
             <list>
              <!--list the directory of the hbm.xml, including each xml file in the dir-->
              <value>classpath:/com/springinaction/training/model</value>
             </list>
            </property>
           </bean>
           
           <bean id="hibernateTemplate"
            class="org.springframework.orm.hibernate.HibernateTemplate">
            <property name="sessionFactory">
             <ref bean="sessionFactory"/>
            </property>
           </bean>

           <bean id="studentDao" class="com.company.example.dao.hibernateImpl.StudentDaoHibernate">
            <property name="hibernateTemplate">
             <ref bean="hibernateTemplate"/>
            </property>
           </bean>

           <bean id="courseDao" class="com.company.example.dao.hibernateImpl.CourseDaoHibernate">
            <property name="hibernateTemplate">
             <ref bean="hibernateTemplate"/>
            </property>
           </bean>
          </beans>

          posted on 2005-04-03 23:12 笨笨 閱讀(321) 評論(0)  編輯  收藏 所屬分類: HibernateAndSpringALL
          主站蜘蛛池模板: 隆尧县| 吉水县| 长沙县| 临西县| 雅安市| 忻州市| 子洲县| 阳城县| 彭州市| 沈阳市| 封丘县| 冷水江市| 普安县| 剑川县| 房山区| 阜新| 富民县| 富源县| 资中县| 上高县| 安庆市| 英吉沙县| 城市| 黔西县| 利辛县| 府谷县| 驻马店市| 乌海市| 芷江| 松溪县| 黄陵县| 浦江县| 深水埗区| 宣城市| 芦山县| 宣武区| 呼和浩特市| 建瓯市| 崇州市| 普定县| 山阳县|