HibernateTemplate、HibernateDaoSupport两种方法实现增删改查

HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good


    spring+hibernate两种方法实现增删改查

        首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件。再定义好一个Dao接口。准备好一个jdbc.properties文件。  

     

    第一种方法:

    在dao类中定义一个HibernateTemplate类的对象,用该对象调用HibernateTemplate模板封装好的方法,如下:

     
    Java代码   收藏代码
    1. /*** 
    2.  * hibernateTemplate的转配模式 
    3.  */  
    4. public class CustomerDaoImpl implements CustomerDao {  
    5.     // 设置hibernateTemplate属性  
    6.     private HibernateTemplate hibernateTemplate;  
    7.   
    8.     // 必须设置set方法  
    9.     public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {  
    10.         this.hibernateTemplate = hibernateTemplate;  
    11.     }  
    12.   
    13.     // 插入方法  
    14.     @Override  
    15.     public void insert(Customer entity) {  
    16.         hibernateTemplate.save(entity);  
    17.     }  
    18.   
    19.     // 删除方法(按照试题删除)  
    20.     @Override  
    21.     public void delete(Customer entity) {  
    22.         hibernateTemplate.delete(entity);  
    23.   
    24.     }  
    25.   
    26.     // 删除方法,按id删除,该方法不成功  
    27.     @Override  
    28.     public void deleteById(int id) {  
    29.         // hibernateTemplate.  
    30.     }  
    31.   
    32.     // 查询所有记录  
    33.     @Override  
    34.     public List<Customer> selectAll() {  
    35.         // TODO Auto-generated method stub  
    36.         List<Customer> entities = hibernateTemplate.find("from Customer");  
    37.         return entities;  
    38.     }  
    39.   
    40.     // 按照id查找记录  
    41.     @Override  
    42.     public Customer selectById(int id) {  
    43.         // TODO Auto-generated method stub  
    44.         List<Customer> entitise = hibernateTemplate  
    45.                 .find("from Customer where id=" + id);  
    46.         if (entitise.size() > 0) {  
    47.             Customer entity = entitise.get(0);  
    48.             return entity;  
    49.         }  
    50.         return null;  
    51.     }  
    52.   
    53.     // 更新方法  
    54.     @Override  
    55.     public void update(Customer entity) {  
    56.         // TODO Auto-generated method stub  
    57.         hibernateTemplate.update(entity);  
    58.     }  
    59.   
    60. }  

    xml中的部分代码如下:

    Java代码   收藏代码
    1. <!-- 分散配置 -->  
    2.     <context:property-placeholder location="jdbc.properties" />  
    3.   
    4.     <!-- c3p0数据源 -->  
    5.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
    6.         <!-- 驱动程序 -->  
    7.         <property name="driverClass">  
    8.             <value>${jdbc.driverClass}</value>  
    9.         </property>  
    10.   
    11.         <!-- 连接的url地址 -->  
    12.         <property name="jdbcUrl">  
    13.             <value>${jdbc.url}</value>  
    14.         </property>  
    15.   
    16.         <!-- 连接的用户名 -->  
    17.         <property name="user">  
    18.             <value>${jdbc.user}</value>  
    19.         </property>  
    20.   
    21.         <!-- 连接的密码 -->  
    22.         <property name="password">  
    23.             <value>${jdbc.password}</value>  
    24.         </property>  
    25.   
    26.         <!-- 最大池数 -->  
    27.         <property name="maxPoolSize">  
    28.             <value>${c3p0.pool.max}</value>  
    29.         </property>  
    30.   
    31.         <!-- 最小池数 -->  
    32.         <property name="minPoolSize">  
    33.             <value>${c3p0.pool.min}</value>  
    34.         </property>  
    35.         <!-- 默认初始化的池数 -->  
    36.         <property name="initialPoolSize">  
    37.             <value>${c3p0.pool.init}</value>  
    38.         </property>  
    39.     </bean>  
    40.   
    41.   
    42.     <bean id="sessionFactory"  
    43.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
    44.         <!-- 设置数据源 -->  
    45.         <property name="dataSource" ref="dataSource" />  
    46.         <!-- 属性设置 -->  
    47.         <property name="hibernateProperties">  
    48.             <props>  
    49.                 <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>  
    50.                 <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>  
    51.             </props>  
    52.         </property>  
    53.         <!-- 映射文件配置 -->  
    54.         <property name="mappingResources">  
    55.             <list>  
    56.                 <value>cn/csdn/domain/Customer.hbm.xml</value>  
    57.             </list>  
    58.         </property>  
    59.   
    60.     </bean>  
    61.   
    62.   
    63.    <!-- hibernate模板 -->  
    64.     <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
    65.         <property name="sessionFactory" ref="sessionFactory" />  
    66.     </bean>
    67.   
    68.     <!-- dao的操作的bean -->  
    69.     <bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl">  
    70.         <!-- 注入依赖模板 -->  
    71.         <property name="hibernateTemplate" ref="hibernateTemplate" />  
    72.         </bean>  

     

    第二种方法:

    Dao实现类继承HibernateDaoSupport类,该类是抽象类,该类中有一个HibernateTemplate的属性,通过this.getHibernateTemplate()可获得一个HibernateTemplate类的对象。

    Dao实现类中的代码如下:

    Java代码   收藏代码
    1. /** 
    2.  * 继承HibernateDaoSupport类,HibernateDaoSupport类中封装了一个hibernateTemplate变量 
    3.  */  
    4. public class CustomerDaoImpl1 extends HibernateDaoSupport implements  
    5.         CustomerDao {  
    6.   
    7.     // 添加记录  
    8.     @Override  
    9.     public void insert(Customer entity) {  
    10.         this.getHibernateTemplate().save(entity);  
    11.     }  
    12.   
    13.     // 删除记录(按照实体删除)  
    14.     @Override  
    15.     public void delete(Customer entity) {  
    16.         // TODO Auto-generated method stub  
    17.         this.getHibernateTemplate().delete(entity);  
    18.   
    19.     }  
    20.   
    21.     // 删除记录(按id删除),不成功  
    22.     //  
    23.     @Override  
    24.     public void deleteById(int id) {  
    25.         // TODO Auto-generated method stub  
    26.         // this.getHibernateTemplate().delete(entity);  
    27.     }  
    28.   
    29.     // 查询所有的记录  
    30.     @Override  
    31.     public List<Customer> selectAll() {  
    32.         // TODO Auto-generated method stub  
    33.         List<Customer> entities = this.getHibernateTemplate().find(  
    34.                 "from Customer");  
    35.         return entities;  
    36.     }  
    37.   
    38. //  按照id查找记录  
    39.     @Override  
    40.     public Customer selectById(int id) {  
    41.         // TODO Auto-generated method stub  
    42.         List<Customer> entities=this.getHibernateTemplate().find("from Customer where id="+id);  
    43.         if(entities.size()>0){  
    44.             Customer entity=entities.get(0);  
    45.             return entity;  
    46.         }  
    47.         return null;  
    48.     }  
    49.   
    50. //  更新的方法  
    51.     @Override  
    52.     public void update(Customer entity) {  
    53.         // TODO Auto-generated method stub  
    54.         this.getHibernateTemplate().update(entity);  
    55.     }  
    56.   
    57.     }  

     

     xml中的部分代码:

    Java代码   收藏代码
    1. <!-- 分散配置 -->  
    2.     <context:property-placeholder location="jdbc.properties" />  
    3.   
    4.     <!-- c3p0数据源 -->  
    5.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
    6.         <!-- 驱动程序 -->  
    7.         <property name="driverClass">  
    8.             <value>${jdbc.driverClass}</value>  
    9.         </property>  
    10.   
    11.         <!-- 连接的url地址 -->  
    12.         <property name="jdbcUrl">  
    13.             <value>${jdbc.url}</value>  
    14.         </property>  
    15.   
    16.         <!-- 连接的用户名 -->  
    17.         <property name="user">  
    18.             <value>${jdbc.user}</value>  
    19.         </property>  
    20.   
    21.         <!-- 连接的密码 -->  
    22.         <property name="password">  
    23.             <value>${jdbc.password}</value>  
    24.         </property>  
    25.   
    26.         <!-- 最大池数 -->  
    27.         <property name="maxPoolSize">  
    28.             <value>${c3p0.pool.max}</value>  
    29.         </property>  
    30.   
    31.         <!-- 最小池数 -->  
    32.         <property name="minPoolSize">  
    33.             <value>${c3p0.pool.min}</value>  
    34.         </property>  
    35.         <!-- 默认初始化的池数 -->  
    36.         <property name="initialPoolSize">  
    37.             <value>${c3p0.pool.init}</value>  
    38.         </property>  
    39.     </bean>  
    40.   
    41.   
    42.     <bean id="sessionFactory"  
    43.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
    44.         <!-- 设置数据源 -->  
    45.         <property name="dataSource" ref="dataSource" />  
    46.         <!-- 属性设置 -->  
    47.         <property name="hibernateProperties">  
    48.             <props>  
    49.                 <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>  
    50.                 <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>  
    51.             </props>  
    52.         </property>  
    53.         <!-- 映射文件配置 -->  
    54.         <property name="mappingResources">  
    55.             <list>  
    56.                 <value>cn/csdn/domain/Customer.hbm.xml</value>  
    57.             </list>  
    58.         </property>  
    59.   
    60.     </bean>  
    61.   
    62.   
    63.     <!-- 设置HibernateDaoSupport抽象类-->  
    64.     <bean id="hibernateDaoSupport"  
    65.         class="org.springframework.orm.hibernate3.support.HibernateDaoSupport"  
    66.         abstract="true">  
    67.         <property name="sessionFactory" ref="sessionFactory" />  
    68.     </bean> 

    69.     <!-- dao的操作的bean -->  
    70.     <bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl1"  
    71.             parent="hibernateDaoSupport" /> 
    72.      <bean id="adminDAO" class="com.haier.uhome.hr91.manager.dao.AdminDAO">
                   parent="hibernateDaoSupport"/>

    或者如下:

    <bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl1">
            <property name="sessionFactory">
                <ref local="sessionFactory" />
            </property>
        </bean>

    <bean id="adminDAO" class="com.haier.uhome.hr91.manager.dao.AdminDAO">
            <property name="sessionFactory">
                <ref local="sessionFactory" />
            </property>
        </bean>

       


    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值