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

    xiaoxiao2021-03-26  4

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

     

    第一种方法:

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

      Java代码   /***  * hibernateTemplate的转配模式  */  public class CustomerDaoImpl implements CustomerDao {      // 设置hibernateTemplate属性      private HibernateTemplate hibernateTemplate;        // 必须设置set方法      public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {          this.hibernateTemplate = hibernateTemplate;      }        // 插入方法      @Override      public void insert(Customer entity) {          hibernateTemplate.save(entity);      }        // 删除方法(按照试题删除)      @Override      public void delete(Customer entity) {          hibernateTemplate.delete(entity);        }        // 删除方法,按id删除,该方法不成功      @Override      public void deleteById(int id) {          // hibernateTemplate.      }        // 查询所有记录      @Override      public List<Customer> selectAll() {          // TODO Auto-generated method stub          List<Customer> entities = hibernateTemplate.find("from Customer");          return entities;      }        // 按照id查找记录      @Override      public Customer selectById(int id) {          // TODO Auto-generated method stub          List<Customer> entitise = hibernateTemplate                  .find("from Customer where id=" + id);          if (entitise.size() > 0) {              Customer entity = entitise.get(0);              return entity;          }          return null;      }        // 更新方法      @Override      public void update(Customer entity) {          // TODO Auto-generated method stub          hibernateTemplate.update(entity);      }    }  

    xml中的部分代码如下:

    Java代码   <!-- 分散配置 -->      <context:property-placeholder location="jdbc.properties" />        <!-- c3p0数据源 -->      <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">          <!-- 驱动程序 -->          <property name="driverClass">              <value>${jdbc.driverClass}</value>          </property>            <!-- 连接的url地址 -->          <property name="jdbcUrl">              <value>${jdbc.url}</value>          </property>            <!-- 连接的用户名 -->          <property name="user">              <value>${jdbc.user}</value>          </property>            <!-- 连接的密码 -->          <property name="password">              <value>${jdbc.password}</value>          </property>            <!-- 最大池数 -->          <property name="maxPoolSize">              <value>${c3p0.pool.max}</value>          </property>            <!-- 最小池数 -->          <property name="minPoolSize">              <value>${c3p0.pool.min}</value>          </property>          <!-- 默认初始化的池数 -->          <property name="initialPoolSize">              <value>${c3p0.pool.init}</value>          </property>      </bean>          <bean id="sessionFactory"          class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">          <!-- 设置数据源 -->          <property name="dataSource" ref="dataSource" />          <!-- 属性设置 -->          <property name="hibernateProperties">              <props>                  <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>                  <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>              </props>          </property>          <!-- 映射文件配置 -->          <property name="mappingResources">              <list>                  <value>cn/csdn/domain/Customer.hbm.xml</value>              </list>          </property>        </bean>          <span style="background-color: #ff0000;"><!-- hibernate模板 -->      <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">          <property name="sessionFactory" ref="sessionFactory" />      </bean></span>        <!-- dao的操作的bean -->      <bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl">          <!-- 注入依赖模板 -->          <property name="hibernateTemplate" ref="hibernateTemplate" />          </bean>    

    第二种方法:

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

    Dao实现类中的代码如下:

    Java代码   /**  * 继承HibernateDaoSupport类,HibernateDaoSupport类中封装了一个hibernateTemplate变量  */  public class CustomerDaoImpl1 extends HibernateDaoSupport implements          CustomerDao {        // 添加记录      @Override      public void insert(Customer entity) {          this.getHibernateTemplate().save(entity);      }        // 删除记录(按照实体删除)      @Override      public void delete(Customer entity) {          // TODO Auto-generated method stub          this.getHibernateTemplate().delete(entity);        }        // 删除记录(按id删除),不成功      //      @Override      public void deleteById(int id) {          // TODO Auto-generated method stub          // this.getHibernateTemplate().delete(entity);      }        // 查询所有的记录      @Override      public List<Customer> selectAll() {          // TODO Auto-generated method stub          List<Customer> entities = this.getHibernateTemplate().find(                  "from Customer");          return entities;      }    //  按照id查找记录      @Override      public Customer selectById(int id) {          // TODO Auto-generated method stub          List<Customer> entities=this.getHibernateTemplate().find("from Customer where id="+id);          if(entities.size()>0){              Customer entity=entities.get(0);              return entity;          }          return null;      }    //  更新的方法      @Override      public void update(Customer entity) {          // TODO Auto-generated method stub          this.getHibernateTemplate().update(entity);      }        }    

     xml中的部分代码:

    Java代码   <!-- 分散配置 -->      <context:property-placeholder location="jdbc.properties" />        <!-- c3p0数据源 -->      <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">          <!-- 驱动程序 -->          <property name="driverClass">              <value>${jdbc.driverClass}</value>          </property>            <!-- 连接的url地址 -->          <property name="jdbcUrl">              <value>${jdbc.url}</value>          </property>            <!-- 连接的用户名 -->          <property name="user">              <value>${jdbc.user}</value>          </property>            <!-- 连接的密码 -->          <property name="password">              <value>${jdbc.password}</value>          </property>            <!-- 最大池数 -->          <property name="maxPoolSize">              <value>${c3p0.pool.max}</value>          </property>            <!-- 最小池数 -->          <property name="minPoolSize">              <value>${c3p0.pool.min}</value>          </property>          <!-- 默认初始化的池数 -->          <property name="initialPoolSize">              <value>${c3p0.pool.init}</value>          </property>      </bean>          <bean id="sessionFactory"          class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">          <!-- 设置数据源 -->          <property name="dataSource" ref="dataSource" />          <!-- 属性设置 -->          <property name="hibernateProperties">              <props>                  <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>                  <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>              </props>          </property>          <!-- 映射文件配置 -->          <property name="mappingResources">              <list>                  <value>cn/csdn/domain/Customer.hbm.xml</value>              </list>          </property>        </bean>          <!-- 设置HibernateDaoSupport抽象类-->      <bean id="hibernateDaoSupport"          class="org.springframework.orm.hibernate3.support.HibernateDaoSupport"          abstract="true">          <property name="sessionFactory" ref="sessionFactory" />      </bean>      <!-- dao的操作的bean -->      <bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl1"              parent="hibernateDaoSupport" />       <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>    

    转载请注明原文地址: https://ju.6miu.com/read-600120.html

    最新回复(0)