zoukankan      html  css  js  c++  java
  • spring_150904_hibernatetemplate

    实体类:

    package com.spring.model;
    
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name="t_dog")
    public class DogPet {
        
        private int id;
        private String name;
        private int age;
        private String kind;
        private String sex;
        private String health;
        
        @Id
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getKind() {
            return kind;
        }
        public void setKind(String kind) {
            this.kind = kind;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public String getHealth() {
            return health;
        }
        public void setHealth(String health) {
            this.health = health;
        }
        
        public String toString()
        {
            return id+"--"+name+"--"+kind+"--"+age+"--"+health;
        }
    }

    接口Service:

    package com.spring.service;
    
    public interface DogPetService {
        public void queryAllDogPets();
    }

    实现类ServiceImpl:

    package com.spring.service.impl;
    
    import java.util.List;
    
    import javax.annotation.Resource;
    
    import org.springframework.stereotype.Controller;
    
    import com.spring.service.DogPetService;
    import com.spring.dao.DogPetDAO;
    import com.spring.model.DogPet;
    
    @Controller(value="DogPetService")
    public class DogPetServiceImpl implements DogPetService{
        private DogPetDAO dogPetDAO;
    
        public DogPetDAO getDogPetDAO() {
            return dogPetDAO;
        }
        
        @Resource(name="dogPetDAO")
        public void setDogPetDAO(DogPetDAO dogPetDAO) {
            this.dogPetDAO = dogPetDAO;
        }
    
        @Override
        public void queryAllDogPets() {
            List<DogPet> list = dogPetDAO.queryAllDogPets();
            if(list != null)
            {
                for(DogPet d:list)
                {
                    System.out.println(d.toString());
                }
            }
        }
        
        
    }

    Service调用的DAO:

    package com.spring.dao;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.orm.hibernate3.HibernateTemplate;
    import org.springframework.stereotype.Component;
    
    import com.spring.model.DogPet;
    
    @Component
    public class DogPetDAO 
    {
        private HibernateTemplate hibernateTemplate;
        
        public List<DogPet> queryAllDogPets()
        {
            List<DogPet> list = hibernateTemplate.find("from DogPet");
            return list;
        }
    
        public HibernateTemplate getHibernateTemplate() {
            return hibernateTemplate;
        }
    
        @Autowired
        public void setHibernateTemplate(@Qualifier(value="hibernateTemplate") HibernateTemplate hibernateTemplate) {
            this.hibernateTemplate = hibernateTemplate;
        }
        
        
        
    }

    配置文件beans.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
            xmlns:jee="http://www.springframework.org/schema/jee" 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/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
                http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
                http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
        <context:annotation-config/>
        
        <context:component-scan base-package="com.spring"></context:component-scan>
        
    </beans>            

    配置文件dao.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="
                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
                http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-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">
    
        <!-- 利用annotation配置声明式事物管理  begin-->
        <bean
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
                <value>classpath:jdbc.properties</value>
            </property>
        </bean>
    
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
            destroy-method="close">
            <property name="driverClassName" value="${driver}" />
            <property name="url" value="${url}" />
            <property name="username" value="${user}" />
            <property name="password" value="${password}" />
        </bean>
        
        <bean id="sessionFactory"
            class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="annotatedClasses">
                <list>
                    <value>com.spring.model.DogPet</value>
                </list>
            </property>
            <property name="hibernateProperties">
                <value>
                    hibernate.dialect=org.hibernate.dialect.MySQLDialect
              </value>
            </property>
        </bean>
    
        <bean id="txManager"
            class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory" />
        </bean>
        
        <!--<tx:advice id="txAdvice" transaction-manager="txManager">
            <tx:attributes>
                <tx:method name="query*" read-only="true" />
                <tx:method name="*" />
            </tx:attributes>
        </tx:advice>
    
        <aop:config>
            <aop:pointcut id="dogPetServiceOperation"
                expression="execution(* com.spring..*(..))" />
            <aop:advisor advice-ref="txAdvice" pointcut-ref="dogPetServiceOperation" />
        </aop:config>
    
        -->
        
        <tx:annotation-driven transaction-manager="txManager"/>
        
        <!-- 利用annotation配置声明式事物管理  end-->
        
        <!-- 
        1、继承HibernateDaoSupport类,第一种数据库访问方式
        
         设置HibernateDaoSupport抽象类  
        <bean id="hibernateDaoSupport"  
            class="org.springframework.orm.hibernate3.support.HibernateDaoSupport"  
            abstract="true">  
            <property name="sessionFactory" ref="sessionFactory" />  
        </bean>  
    
         dao的操作的bean   
        <bean id="dogPetDAO" class="com.spring.dao.DogPetDAO" parent="hibernateDaoSupport" /> 
    
        2、继承HibernateDaoSupport类,第二种数据库访问方式
        <bean id="dogPetDAO" class="com.spring.dao.DogPetDAO" >
            <property name="sessionFactory" ref="sessionFactory"></property>
        </bean>
        
        -->
        
        <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
            <property name="sessionFactory" ref="sessionFactory" />  
        </bean>  
      
    </beans>            

    test类:

    package com.spring.test;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.spring.service.DogPetService;
    
    public class ServiceTest {
        
        public static void main(String[] args)
        {
            ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml","dao.xml"});
            DogPetService dogPetService = (DogPetService)ctx.getBean("DogPetService");
            dogPetService.queryAllDogPets();
        }
    
    }
  • 相关阅读:
    【BZOJ4318】OSU! 期望DP
    【BZOJ2956】模积和 分块
    【BZOJ4443】[Scoi2015]小凸玩矩阵 二分+二分图最大匹配
    【BZOJ2253】[2010 Beijing wc]纸箱堆叠 cdq分治
    【BZOJ3555】[Ctsc2014]企鹅QQ hash
    【BZOJ3238】[Ahoi2013]差异 后缀数组+单调栈
    【BZOJ2287】【POJ Challenge】消失之物 背包动规
    【BZOJ4517】[Sdoi2016]排列计数 组合数+错排
    【BZOJ4551】[Tjoi2016&Heoi2016]树 并查集
    【BZOJ2783】[JLOI2012]树 DFS+栈+队列
  • 原文地址:https://www.cnblogs.com/yanff/p/4792235.html
Copyright © 2011-2022 走看看