`

Hibernate增删改查数据库之一DAO类

阅读更多

/*使用了自己封装的HibernateUtils工具类(该类详见之二篇日志)*/
public class SessionTest extends TestCase {
/**
  * 1.DESC--利用save()方法插入一条数据到数据库
  */
public void testSave(){
  Session session = null;
  User user = null;
  //实例化POJO对象
  user = new User();//@@@此时的user对象为瞬时对象状态@@@
  user.setName("xxx");
  user.setPassword("asb");
  user.setCteateTime(new Date());
  try{
   //获取session对象(调用HibernateUtils工具类)
   session=HibernateUtils.getSession();
   //开启事物
   HibernateUtils.openTransaction();
   //调用save(object)方法将持久化对象保存到数据库中(插入数据)
   session.save(user);//@@@此时的user对象为持久化对象状态@@@
   user.setName("update");
   session.update(user);//(更新数据)
   //提交事物
   HibernateUtils.commitTransaction();
  }catch(Exception e){
   //回滚事物
   HibernateUtils.rollbackTransation();
   e.printStackTrace();
  }finally{
   //关闭session对象
   HibernateUtils.closeSession(session);
  }
}
/**
  * 2.DESC--利用get()方法按主键查询数据库中的一条记录
  *   总结:get()不是延迟加载数据,当数据库无匹配数据时候,返回NULL
  *   技巧:判断是否查到指定主键的数据,只需要判断User对象是否为空
  */
public void testGet(){
  Session session = null;
  //创建session对象
  session = HibernateUtils.getSession();
  //开启事物
  HibernateUtils.openTransaction();
  //调用get()方法(按指定ID)
  User user = (User)session.get(User.class,"402880d51c6b345e011c6b34608d0001");
  //提交事物
  HibernateUtils.commitTransaction();
  if(user!=null){
   System.out.println("user.name=="+user.getName());
  }else{
   System.out.println("数据库中无与之匹配的数据!");
  }
  //关闭Session对象
  HibernateUtils.closeSession(session);
}
/**
  * 3.DESC--利用load()方法按主键查询数据库中的一条记录
  *   总结:get()是延迟加载数据,当数据库无匹配数据时候,返回ObjectNotFoundException异常
  *   技巧:判断是否查到指定主键的数据,只需要看是否抛出异常
  */
public void testLoad(){
  Session session = null;
  try{
   //创建session对象
   session = HibernateUtils.getSession();
  
   //调用load方法(按指定ID)
   User user = (User)session.load(User.class,"402880d51c6b345e011c6b34608d0001");
   //提交事物
   HibernateUtils.commitTransaction();
   System.out.println("user.name=="+user.getName());
  }catch(Exception e){
   System.out.println("数据库中无与之匹配的数据!");
  }finally{
   //关闭Session对象
   HibernateUtils.closeSession(session);
  }
}
/**
  * 3.DESC--利用delet()方法按主键删除数据库中的一条记录
  *   技巧:先用load()查出该条记录,然后调用delete()删除
  *   重点:要开启提交事物,否则删除不了
  */
public void testDelete(){
  Session session = null;
  try{
   //创建session对象
   session = HibernateUtils.getSession();
   //开启事物
   HibernateUtils.openTransaction();
   //调用load方法(按指定ID)
   User user = (User)session.load(User.class,"402880d51c6b345e011c6b34608d0001");
   session.delete(user);
   //提交事物
   HibernateUtils.commitTransaction();
  }catch(Exception e){
   System.out.println("删除失败-->数据库中无与之匹配的数据!");
  }finally{
   //关闭Session对象
   HibernateUtils.closeSession(session);
  }
}
}
分享到:
评论
1 楼 andey007518 2009-07-27  
这样就完了吗?有没有具体的好的思路呢

相关推荐

    spring+struts2+hibernate 增删改查

    在增删改查操作中,Struts2接收用户的HTTP请求,解析请求参数,调用相应的Action类方法,执行业务逻辑,并将结果返回给视图层。通过Struts2的拦截器机制,我们可以实现请求的预处理和后处理,比如登录检查、权限验证...

    spring4+hibernate4实现增删改查

    本文将深入探讨如何使用Spring4和Hibernate4实现数据库的增删改查操作,以及在这个过程中可能涉及的关键知识点。 首先,Spring4是一个全面的Java应用程序框架,它提供了一种方式来管理组件(或称为bean)之间的依赖...

    SpringMVC+Spring+HIbernate增删改查

    在这个MyEclipse项目中,我们将深入探讨这三大框架如何协同工作,实现数据库的增删改查操作。 SpringMVC是Spring框架的一个模块,专门用于处理Web请求。它遵循Model-View-Controller(MVC)设计模式,将业务逻辑、...

    (hibernate_10增删改查DAO

    标题中的“hibernate_10增删改查DAO”暗示了本次讨论的主题是关于Hibernate框架在数据库操作中的应用,特别是涉及到数据的插入(Insert)、删除(Delete)、更新(Update)以及查询(Query)功能,并且是通过DAO...

    struts2+hibernate增删改查+分页

    综上所述,"struts2+hibernate增删改查+分页"是一个基础的Java Web开发示例,它涵盖了MVC架构下,如何利用Struts2处理用户请求,通过Hibernate进行数据库操作,以及实现简单的分页功能。这种组合在实际项目中非常...

    sping+hibernate+struts2增删改查

    在"增删改查"中,Spring可以提供数据访问对象(DAO)抽象,通过JdbcTemplate或MyBatis等工具与数据库交互,简化了数据库操作。 Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库...

    Struts1 Spring Hibernate实现增删改查小项目

    这个"Struts1 Spring Hibernate实现增删改查小项目"提供了一个基础的示例,演示了如何整合这三个框架来构建Web应用。虽然代码质量可能不高,但对于初学者来说,这是一个很好的学习资源,能够理解如何在实际项目中...

    Struts+Spring+Hibernate(ssh)集成(实现增删改查)

    在本项目中,我们将探讨如何将这三个框架整合起来,实现一个基础的增删改查功能。 首先,Struts 是一个基于 MVC(Model-View-Controller)设计模式的 Web 应用框架,主要用于处理用户的请求并将其转发到相应的控制...

    使用springmvc+hibernate完成增删改查

    在本项目中,"使用springmvc+hibernate完成增删改查"意味着开发者已经配置好了SpringMVC和Hibernate的环境,能够通过这两个框架进行数据操作。数据无需创建自动生成,可能指的是使用了Hibernate的自动建表功能,或者...

    struts2+hibernate 增删改查

    以上知识点涵盖了Struts2+Hibernate整合进行增删改查的基础概念和操作流程,通过这样的组合,开发者可以方便地构建出功能完善的Web应用程序。在实际项目中,还需要结合其他技术,如Spring来管理依赖,以及MyBatis等...

    Struts+hibernate实现增删改查功能

    5. **Action类**:为每个增删改查操作创建一个Action类,处理请求并调用相应的Service方法。 6. **Service层**:实现业务逻辑,使用SessionFactory和Session对象进行数据库操作。 7. **DAO(Data Access Object)**...

    SpringMVC+Hibernate用户增删改查实例

    在增删改查操作中,Hibernate提供了Session接口,用于管理数据库会话,包括 CRUD(创建、读取、更新、删除)操作。 在这个实例中,我们可能会看到以下关键组成部分: 1. **实体类(Entity)**:代表数据库中的表,...

    java数据库增删改查操作实例(hibernate原理)

    本示例通过一个通用的DAO(Data Access Object)类,展示了如何在不依赖Hibernate等ORM框架的情况下,进行数据库的增删改查操作。这有助于理解底层的SQL执行过程,同时也提供了更灵活的控制权。 首先,DAO模式是一...

    SpringMVC + Hibernate增删改查

    总结来说,SpringMVC和Hibernate的结合使用使得开发者能够轻松地构建一个具备数据库增删改查功能的Web应用程序。SpringMVC处理HTTP请求,控制业务流程,而Hibernate则简化了与数据库的交互,两者协同工作,提高了...

    spring3 + hibernate3 实现用户的增删改查

    本教程将详细介绍如何利用Spring3和Hibernate3实现用户管理系统的增删改查功能,非常适合初学者入门。 Spring是一个全面的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,帮助...

    Spring+Hibernate 增删改查等基本操作

    在IT行业中,Spring和Hibernate...通过以上知识,我们可以构建一个基于Spring和Hibernate的简单但功能完备的增删改查系统。在实际开发中,还需要考虑性能优化、事务管理、异常处理等方面,以确保系统的稳定性和高效性。

    struts2+spring+hibernate+mysql(eclipse)整合增删改查

    本项目是基于Eclipse集成开发环境,结合MySQL数据库实现的一个基础的增删改查功能。接下来,我们将详细讨论SSH整合的关键点以及如何在实际开发中进行操作。 首先,Struts2是MVC(Model-View-Controller)架构模式的...

    hibernate3.3+struts2实现人员的增删改查

    3. **编写DAO**:创建DAO接口和实现类,这些类通常包含增删改查的基本方法,如`save(User user)`、`delete(User user)`等,它们使用Hibernate的Session接口进行操作。 4. **Service层**:在Service层,我们可以创建...

    struts2+hibernate增删改查

    在"struts2+hibernate增删改查"的应用中,我们将看到以下关键知识点: 1. **整合配置**:首先,需要配置Struts2和Hibernate的整合,包括在`struts.xml`中配置Action,指定Action的类和结果视图;在`hibernate.cfg....

Global site tag (gtag.js) - Google Analytics