HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
来源:互联网 发布:淘宝10元包邮专区 编辑:程序博客网 时间:2024/05/03 05:46
首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件。再定义好一个Dao接口。准备好一个jdbc.properties文件。
第一种方法:
在dao类中定义一个HibernateTemplate类的对象,用该对象调用HibernateTemplate模板封装好的方法,如下:
- /***
- * 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中的部分代码如下:
<!-- 分散配置 --> <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实现类中的代码如下:
/** * 继承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中的部分代码:
<!-- 分散配置 --> <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>
转自 :http://blog.csdn.net/baple/article/details/23352059
0 0
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查
- [Hibernate]HibernateTemplate、HibernateDaoSupport两种方法实现增删改查
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查
- hibernateTemplate 与session的区别 HibernateTemplate、HibernateDaoSupport两种方法实现增删改查
- hibernateTemplate 与session的区别 HibernateTemplate、HibernateDaoSupport两种方法实现增删改查
- Spring+Hibernate实现增删改查的两种方法
- Spring+Hibernate两种方法实现增删改查
- Android SQLite数据库解析并使用两种方法实现增删改查
- spring入门(12)-spring与hibernate整合完成增删改查的操作(继承HibernateDaoSupport调用hibernateTemplate类)
- spring入门(12)-spring与hibernate整合完成增删改查的操作(继承HibernateDaoSupport调用hibernateTemplate类)
- 编程基础
- 1622-5 孔富晨 总结《2016年11月10日》 【连续第41天总结】
- 51nod 编辑距离问题 dp
- The Apache Tomcat installation at this directory is version 8.5.6A Tomcat 8.0 installation is expec
- sizeof运算符
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
- 内存映射文件详解-----C++实现
- HashSet保证元素唯一性源码展示
- MANIFEST.MF
- leetcode (23) - Merge k Sorted Lists
- 机器学习 小白笔记 正式开始!
- CheckBox设置颜色和自定义样式
- POJ3185 高斯消元 +枚举自由变元
- 18.海量分布式存储系统 Doris 的高可用架构设计分析