`
hwpok
  • 浏览: 250579 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HibernateTemplate DAO

阅读更多
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class UserDAO extends HibernateDaoSupport
{
    
public void addUser(User user)
    
{
        
this.getHibernateTemplate().save(user);
    }

    
    
public void updateUser(User entity)
    
{
        
this.getHibernateTemplate().save(entity);
    }

    
    
public void deleteUser(User entity)
    
{
        
this.getHibernateTemplate().delete(entity);
    }

    
    
public User getUser(int entityId)
    
{
        
return (User) this.getHibernateTemplate().get(User.class, entityId);
    }

    
    @SuppressWarnings(
"unchecked")
    
public List<User> findUsers()
    
{
        
return getHibernateTemplate().executeFind(new HibernateCallback()
            
{
                @SuppressWarnings(
"unchecked")
                
public List<User> doInHibernate(Session session)
                        
throws HibernateException, SQLException
                
{
                    StringBuffer sql 
= new StringBuffer(
                            
"from User u where 1=1 ");
                    Query query 
= session.createQuery(sql.toString());
                    List
<User> users = query.list();
                    
return users;
                }

            }
);
    }

    
    
public Long getUserNum()
    
{
        
return (Long) getHibernateTemplate().execute(new HibernateCallback()
            
{
                
public Long doInHibernate(Session session)
                        
throws HibernateException, SQLException
                
{
                    Query query 
= session
                            .createQuery(
"SELECT COUNT(u.userId) FROM User u");
                    
return (Long) query.uniqueResult();
                }

            }
);
    }

    
    
public static void main(String[] a)
    
{
        User user 
= new User();
        user.setUserName(
"hwpokay");
        user.setSex(
0);
        
        String configPath 
= "hvp/spring/hibernate/orm/beans.xml";
        ApplicationContext ctx 
= new ClassPathXmlApplicationContext(configPath);
        
        UserDAO userDAO 
= (UserDAO) ctx.getBean("userDAO");
        System.out.println(userDAO.getUserNum());
    }

}
分享到:
评论

相关推荐

    简单封装 HibernateTemplate 各项功能

    GenericHibernateDao 继承 HibernateDao,简单封装 HibernateTemplate 各项功能,简化基于Hibernate Dao 的编写。

    hibernateTemplate

    下面是一个使用`HibernateTemplate`的DAO实现类的示例代码,该类实现了`PersonDAO`接口,包含了基本的增删改查操作。 ```java public class PersonDAOHibernate implements PersonDAO { // 使用log4j记录日志 ...

    基于HIbernateTemplate的代码自动生成

    2. DAO接口的实现类,使用`HibernateTemplate`进行实际的数据库操作。 Service层的生成则涉及: 1. Service接口,声明业务逻辑方法,可能包括复杂的业务组合操作。 2. Service接口的实现类,调用DAO层的方法完成...

    HibernateTemplate 的常规用法.doc

    在实际应用中,DAO(Data Access Object)类通常会使用HibernateTemplate。例如,以下是一个简单的`PersonDAOImpl`类的示例: ```java public class PersonDAOImpl implements PersonDAO { private static Log log...

    HibernateTemplate的简单示例

    HibernateTemplate的简单示例

    HibernateTemplate源代码

    `HibernateTemplate`类本身并没有直接继承自任何特定类,但它是Spring框架中众多DAO支持类之一。这些类通常用于处理数据访问异常以及资源管理等任务。`HibernateTemplate`主要依赖于`SessionFactory`来创建和管理...

    Spring对DAO的支持.doc

    HibernateTemplate自动处理事务管理和资源关闭,简化了DAO实现。 - **HibernateTemplate**:封装了Hibernate的Session操作,提供了一套与JdbcTemplate类似的API。 - **HibernateCallback**:定义了一个回调接口,...

    一个模拟Spring将SessionFactory注入到HibernateTemplate的小例子

    在压缩包文件"sessionInject"中,可能包含了实现上述步骤的示例代码,包括Spring配置文件、实体类、DAO层的代码等。你可以通过查看这些文件来学习和实践这个小例子。 总之,Spring与Hibernate的整合使得数据库操作...

    一个很好的通用泛型dao(含源码)

    用spring提供的HibernateTemplate注入到GenericHibernateDao中,这样在各个实现类就可以直接调用HibernateTemplate来实现额外的查询操作了。 如果在实现类中不想调用某个方法(例如:update()),就可以覆盖它,方法...

    spring几种Dao支持配置

    `HibernateTemplate`封装了Hibernate的会话管理,提供了一套便捷的API,而`HibernateDaoSupport`则为DAO实现提供了一个基类,包含了SessionFactory的初始化和关闭。 - **MyBatis**:Spring整合MyBatis时,可以通过...

    jsp中调用dao的getHibernateTemplate()时,报空指针

    在 SSH 框架中,DAO(Data Access Object)是负责与数据库交互的对象,而 HibernateTemplate 则是 Hibernate 框架提供的一个模板类,用于简化数据库操作。通常情况下,我们在 DAO 中使用 getHibernateTemplate() ...

    DAO 数据访问对象

    Spring的JdbcTemplate和HibernateTemplate等工具类简化了DAO的实现,使得开发者可以更专注于业务逻辑而不是底层的数据库操作。 在实际项目中,DAO层通常与Service层配合工作。Service层负责业务逻辑,它调用DAO层的...

    Hibernate泛型DAO(结合spring模板支持)

    以HibernateTemplate为例,我们可以这样实现泛型DAO: ```java public abstract class HibernateGenericDao&lt;T&gt; implements GenericDao&lt;T&gt; { private SessionFactory sessionFactory; public ...

    SSH中通用dao类

    通过Spring的`JdbcTemplate`或`HibernateTemplate`,开发者可以方便地进行数据库操作,同时避免了大量模板代码。这些模板类封装了SQL执行、结果集处理等细节,使得DAO实现更加简洁。 2. **Hibernate作为ORM工具**:...

    Hibernate 原生通用DAO

    **Hibernate原生通用DAO**是基于Hibernate框架设计的一种简化数据访问操作的方式,它模仿了Spring框架中的`HibernateTemplate`类,旨在提供一个简单易用的DAO(Data Access Object)层,方便开发人员进行数据库操作...

    dao--2.dao模式

    在实际应用中,DAO模式常常与Spring框架结合使用,Spring提供了对DAO的支持,如`JdbcTemplate`和`HibernateTemplate`等,它们简化了数据库操作,帮助开发者更方便地实现DAO接口。 文件名列表中,"day17_2"、"day17_...

    HibernateTemplate及generator用法.doc

    `HibernateTemplate`在事务管理、异常转换等方面提供了很多便利,而`HibernateDaoSupport`是一个抽象类,它的目的是为DAO提供对`HibernateTemplate`的便捷访问。 当我们在DAO中继承`HibernateDaoSupport`时,可以...

    JDBC中的 DAO

    随着技术的发展,JDBC DAO模式还有许多改进和扩展,如使用ORM框架(Hibernate, MyBatis)来简化数据访问,或者使用Spring的JdbcTemplate和HibernateTemplate,这些都降低了直接使用JDBC的复杂性,提高了开发效率。...

    hibernateTemplate和HibernateDaoSupport

    在实际使用中,继承自 HibernateDaoSupport 的 DAO 类可以通过重写其提供的方法,利用 HibernateTemplate 提供的便利功能,实现对业务对象的 CRUD 操作。例如,下面是一些使用 HibernateDaoSupport 的示例方法: ``...

    hibernateDaoSurpport和hibernateTemplate

    通过这种方式,开发者可以在继承`HibernateDaoSupport`的DAO实现类中直接调用`HibernateTemplate`的方法,而无需显式创建`SessionFactory`和`HibernateTemplate`。 #### 四、比较分析 - **使用场景**:`...

Global site tag (gtag.js) - Google Analytics