`
envoydada
  • 浏览: 64893 次
社区版块
存档分类
最新评论

Hibernate基本数据操作方法

阅读更多

 

package hibernatetest;

import net.sf.hibernate.
*;
import net.sf.hibernate.cfg.Configuration;
import derek.hibernate.test.Admin;
import java.util.Iterator;
import java.util.List;
import java.sql.
*;

public class TestConTest  {
  Session session 
= null;

  
protected void setUp(){

    
try {
      Configuration config 
= new Configuration().configure();
      SessionFactory sessionFactory 
= config.buildSessionFactory();
      System.
out.println(config.getProperty("connection.url"));
      session 
= sessionFactory.openSession();
    }
    
catch (HibernateException ex1) {ex1.printStackTrace();}
  }

//数据插入
  public void testInsert(){
    
    Admin admin 
= new Admin();
    admin.setName(
"Hiber");
    admin.setPasswd(
"gen");
    System.
out.println(admin.getName());
    System.
out.println(admin.getPasswd());
    
try {
      Transaction ts 
= session.beginTransaction();
      session.save(admin);
      session.flush();
      ts.commit();
    }
    
catch (HibernateException ex) {ex.printStackTrace(); }
  }

//Query方法查询数据
  public void testQuery(){
      
try {
       Query q 
= session.createQuery("from Admin where id=?");
       q.setInteger(
0,2);//这里的?跟JDBC的PreparedStatement方法的差不多,只不过这里的是以0开始,jdbc的是1开始。
       System.out.println("Query方法查询数据");
       
//q.setFirstResult(2);//查询结果从第几行开始列出数据
       
//q.setMaxResults(10);//取多少条数据,就跟SQL SERVER的TOP方法和MYSQL的LIMIT方法一样的意思。
       
// ScrollableResults sc=q.scroll();//得到一个ScrollableResults,可滚动的,如果你的数据库支持游标自由移动的话可以加上,也就是说可以判断查询结果有没有值,或者移动到下一行记录等等.
       Iterator it = q.iterate();
       
while(it.hasNext()){
         Admin admin 
= (Admin)it.next();
         System.
out.println(admin.getId());
         System.
out.println(admin.getName());
         System.
out.println(admin.getPasswd());
       }
       session.flush();
      }
      
catch (HibernateException ex) {ex.printStackTrace();}
//      finally{
//      try {
//        session.close();
//      }
//      catch (HibernateException ex1) {ex1.printStackTrace();}
//      }
  }

  
/**
   * Hibernate3.0中已经废弃了find()和iterate()方法
   
*/
  
  
//find方法查询数据
  public void testFind(){
    
try {
      List lt 
= session.find("from Admin");
      System.
out.println("find方法查询数据");
      Iterator it 
= lt.iterator();
      
while(it.hasNext()){
        Admin admin 
= (Admin)it.next();
        System.
out.println(admin.getId());
        System.
out.println(admin.getName());
        System.
out.println(admin.getPasswd());
      }
      session.flush();
    }
    
catch (HibernateException ex) {ex.printStackTrace();}
//    finally{
//    try {
//      session.close();
//    }
//    catch (HibernateException ex1) {ex1.printStackTrace();}
//    }
  }

  
//iterate方法查询数据
  public void testIterator(){
    
try {
      Iterator it 
= session.iterate("from Admin");
      
while(it.hasNext()){
        Admin admin 
= (Admin)it.next();
        System.
out.println(admin.getId());
        System.
out.println(admin.getName());
        System.
out.println(admin.getPasswd());
        session.flush();
        
      }
    }
    
catch (HibernateException ex) {ex.printStackTrace();}
//    finally{
//        try {
//           session.close();
//            }catch (HibernateException ex1) {ex1.printStackTrace();}
//        }
  }

 
//修改数据
 public void testModify(){
  
try {
    Connection con 
= session.connection();//得到数据库连接
    Query q = session.createQuery("from Admin where id = 2");
    Iterator it 
= q.iterate();
    Transaction ts 
= session.beginTransaction();
    
if(it.hasNext()){
    Admin admin 
= (Admin)it.next();
    admin.setName(
"dada");
    session.update(admin);
    session.evict(admin);
//调用Session的evict()方法立即释放它的内存
    session.flush();
    ts.commit();
    }
  }
  
catch (HibernateException ex) {ex.printStackTrace();}
//  finally{
//        try {
//           session.close();
//            }catch (HibernateException ex1) {ex1.printStackTrace();}
//        }
 }

 
/**
  * delete()方法执行首先是执行select语句把符合条件的记录载入内存中,
  * 然后做逐一删除即有多少条符合条件的记录就执行多少次删除命令 
  
*/
 
 
//删除数据
 public void testDelete(){
  
try {
    
int i = session.delete("from Admin where id = 2");
    Transaction ts 
= session.beginTransaction();
    System.
out.println("删除数据状态 "+i);
    session.flush();
  }
  
catch (HibernateException ex) {ex.printStackTrace();}
//  finally{
//      try {
//         session.close();
//          }catch (HibernateException ex1) {ex1.printStackTrace();}
//      }

 }
 
public static void main(String arg[]){
    TestConTest tt 
= new TestConTest();
    tt.setUp();
    tt.testInsert();
    
//tt.testDelete();
    
//tt.testModify();
    tt.testIterator();
 }
}
分享到:
评论

相关推荐

    spring hibernate整合的底层数据操作方法

    下面我们将深入探讨Spring与Hibernate整合的底层数据操作方法。 一、Spring与Hibernate整合基础 1. 依赖管理:整合Spring和Hibernate首先需要在项目中引入相应的依赖,通常包括Spring的核心库、Spring的数据访问/...

    hibernate基本jar包

    总的来说,这个"hibernate基本jar包"为Java开发者提供了完整的Hibernate ORM框架,能够高效、便捷地进行数据库操作,提高开发效率。不过,需要注意的是,随着Java和Hibernate版本的更新,这些库文件可能会有所变化,...

    hibernate入门数据简单插入

    标题"hibernate入门数据简单插入"指的是使用Hibernate框架进行数据库的基本操作,特别是数据的插入。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在应用程序中处理数据库对象,而无需直接编写...

    hibernate基本配置及使用方法

    【hibernate基本配置及使用方法】 Hibernate是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与关系数据库之间的交互。本教程将详细解释Hibernate的基本配置和使用步骤,帮助初学者快速掌握这一强大...

    Hibernate 数据持久化

    本篇文章将深入探讨Hibernate的数据持久化机制,包括其基本概念、配置、实体类、映射文件以及查询操作。 1. **基本概念** - **对象关系映射(ORM)**: ORM是将关系数据库的数据模型与面向对象编程中的对象模型进行...

    Java Hibernate3 添加和删除数据

    在Java Hibernate3中,添加和删除数据是通过持久化类和配置文件实现的,无需直接编写SQL语句。以下是关于这个主题的详细说明。 首先,我们需要了解Hibernate3的基本概念。Hibernate提供了一个API,允许开发者将Java...

    Hibernate操作数据库的方法

    上述代码展示了Hibernate在插入更新和删除操作时的基本流程。在实际应用中,开发者需要根据具体的业务逻辑和需求来调整代码,例如,在插入更新操作时,可能需要根据主键是否已存在来决定是插入新记录还是更新现有...

    JAVA数据类型与Hibernate的类型映射

    首先,Java的基本数据类型在Hibernate中有对应的类型映射。例如,int型在Hibernate中通常映射为Integer类型,因为数据库字段可能允许为空(NULL),而Java的基本类型不能是NULL。同样,boolean型在Hibernate中映射为...

    hibernate hql基本操作

    ### Hibernate HQL 基本操作详解 #### 一、HQL简介 HQL,即Hibernate Query Language,是Hibernate提供的一种强大的查询语言。虽然它的语法结构看起来与SQL类似,但其实质上是一种面向对象的语言,能够理解并处理...

    hibernate基本jar包(数据库是Oracle)

    在“hibernate基本jar包(数据库是Oracle)”中,我们可以推断出这是针对使用Oracle数据库的Hibernate项目所需的基础库集合。这个压缩包很可能是包含了一系列用于搭建Hibernate环境并连接Oracle数据库的JAR文件。以下...

    Hibernate插入数据

    在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑,而不是底层的数据存取细节。本篇将详细探讨“Hibernate插入数据”的相关知识点,结合学习心得,深入...

    Hibernate之数据加载方式

    在Java的持久化框架中,Hibernate是一个非常重要的工具,它简化了数据库操作,提供了对象关系映射(ORM)的功能。本篇将深入探讨Hibernate的数据加载方式,帮助开发者更好地理解和掌握其核心机制。 ### 一、基本...

    Hibernate使用——自定义数据类型

    这个类通常会包含一个或多个基本数据类型的属性,以及必要的getter和setter方法。 2. **实现Hibernate的Type接口**:这个接口是自定义数据类型的核心,它定义了如何在Java对象和SQL值之间进行转换。你需要实现`...

    hibernate基础jar包

    Transaction则封装了数据库事务,确保数据操作的一致性和完整性。 7. HQL和Criteria API:Hibernate Query Language(HQL)是Hibernate特有的面向对象的查询语言,类似于SQL,但操作的是对象而非表格。Criteria API...

    Hibernate进行数据查询

    本篇将详细阐述如何使用Hibernate进行数据查询,包括基本数据查询、HQL(Hibernate Query Language)以及查询条件的设定。 1. **基本查询** Hibernate提供了一个简单易用的API来进行数据查询。主要通过`Session`...

    HibernateDemo(hibernate基本用法演示)

    `HibernateDemo(hibernate基本用法演示)` 是一个针对 Hibernate 框架的基础操作示例项目。Hibernate 是一款强大的 Java ORM(对象关系映射)框架,它允许开发者在 Java 应用程序中以面向对象的方式处理数据库交互,...

    hibernate操作

    在实际开发中,可能还需要实现事务管理、错误处理等高级功能,但这已经涵盖了Hibernate基本操作的流程。通过这种方式,你可以轻松地在MyEclipse中使用Hibernate来管理数据库操作,简化开发过程。

    hibernate框架基本包

    这个“hibernate框架基本包”包含了一系列必要的库文件,使得开发者能够轻松地将数据库操作与业务逻辑集成,从而减少对SQL的直接依赖。这个包与相关的博客内容配合,提供了学习Hibernate的完整资源。 **1. ...

    hibernate4基本配置方式详解

    Hibernate 4 是一款流行的持久化框架,用于简化Java应用程序与关系型数据库之间的交互。本文将深入探讨 Hibernate 4 的基本配置方式,...理解并熟练掌握这些配置方法对于高效使用 Hibernate 进行数据库操作至关重要。

Global site tag (gtag.js) - Google Analytics