`

hibernate 3配置

    博客分类:
  • SSH2
 
阅读更多

hibernate 搭建

1、所需jar包
antlr-2.7.6.jar、commons-collections-3.1.jar、dom4j-1.6.1.jar、hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、
javassist-3.11.0.GA.jar、jta-1.1.jar、slf4j-api-1.6.1.jar

2、src下hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory name="foo">
 <property name="show_sql">true</property>
 <property name="myeclipse.connection.profile">oraclejdbc</property>
 <property name="connection.url">
  jdbc:oracle:thin:@10.8.205.70:1521:orcl
 </property>
 <property name="connection.username">sspm</property>
 <property name="connection.password">sspm</property>
 <property name="connection.driver_class">
  oracle.jdbc.driver.OracleDriver
 </property>
 <property name="dialect">
  org.hibernate.dialect.Oracle9Dialect
 </property>
 <mapping resource="com/sspm/hibernate/test/Customer.hbm.xml"/>
 <mapping resource="com/sspm/hibernate/test/Order.hbm.xml"/>
</session-factory>
</hibernate-configuration>


3、编写HibernateUtil.java
public class HibernateUtil {

 private static SessionFactory sessionFactory;

 private HibernateUtil() {
 }

 static {
  Configuration cfg = new Configuration();
  cfg.configure();
  sessionFactory = cfg.buildSessionFactory();
 }

 public static SessionFactory getSessionFactory() {
  return sessionFactory;
 }

 public static Session getSession() {
  return sessionFactory.openSession();
 }
}

4、数据库表

表customer
-- Create table
create table CUSTOMER
(
  ID   NUMBER not null,
  NAME VARCHAR2(20)
)
tablespace FM
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints
alter table CUSTOMER
  add constraint COUSTOMER_PKID primary key (ID)
  disable;

表ORDERS
-- Create table
create table ORDERS
(
  ID          NUMBER not null,
  ORDERNUMBER VARCHAR2(20),
  CUSTOMERID  NUMBER not null
)
tablespace FM
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints
alter table ORDERS
  add constraint ORDER_PKID primary key (ID)
  disable;
alter table ORDERS
  add constraint CUSTOMER_FK foreign key (CUSTOMERID)
  references CUSTOMER (ID) on delete cascade
  disable;

5、javabean 及映射文件
Customer.java
public class Customer {

 private Long id;
 private String name;
 private Set<Order> orders = new HashSet<Order>();
 
 public Long getId() {
  return id;
 }
 public void setId(Long id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public Set<Order> getOrders() {
  return orders;
 }
 public void setOrders(Set<Order> orders) {
  this.orders = orders;
 }
}

Customer.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
 <class name="com.sspm.hibernate.test.Customer" table="Customer">
  <id name="id" type="java.lang.Long" column="Id">
   <generator class="sequence">
    <param name="sequence">SQ_CUSTOMER_ID</param> 
   </generator>
  </id>
  <property name="name" column="Name" type="string"></property>
  <set name="orders" cascade="all" inverse="true">
   <key column="CustomerId" /><!-- 对应着外键 -->
   <one-to-many class="com.sspm.hibernate.test.Order" />
  </set>
 </class>
</hibernate-mapping>

public class Order {

 private Long id;
 private Customer customer;
 private String orderNumber;
 public Long getId() {
  return id;
 }
 public void setId(Long id) {
  this.id = id;
 }
 public Customer getCustomer() {
  return customer;
 }
 public void setCustomer(Customer customer) {
  this.customer = customer;
 }
 public String getOrderNumber() {
  return orderNumber;
 }
 public void setOrderNumber(String orderNumber) {
  this.orderNumber = orderNumber;
 }
}

Order.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
 <class name="com.sspm.hibernate.test.Order" table="Orders">
  <id name="id" type="java.lang.Long" column="Id">
   <generator class="sequence">
    <param name="sequence">SQ_ORDER_ID</param> 
   </generator>
  </id>
  <property name="orderNumber" column="OrderNumber"
   type="string">
  </property>
  <many-to-one name="customer" column="CustomerId"
   class="com.sspm.hibernate.test.Customer" cascade="all" lazy="false"
   not-null="true">
  </many-to-one>
 </class>
</hibernate-mapping>

6、action 测试类
public class CustomerAction {

  private Customer customer;
  private List<Customer> listCustomer;

  public Customer getCustomer() {
   return customer;
  }

  public void setCustomer(Customer customer) {
   this.customer = customer;
  }

  public List<Customer> getListCustomer() {
   return listCustomer;
  }

  public void setListCustomer(List<Customer> listCustomer) {
   this.listCustomer = listCustomer;
  }

  /** * 添加客户 * */
  public void addCustomer(Customer customer) {
   Session s = null;
   Transaction tx = null;
   try {
    s = HibernateUtil.getSession();
    tx = s.beginTransaction();
    s.save(customer);
    tx.commit();
   } catch (Exception e) {
    if (tx != null) {
     tx.rollback();
    }
    e.printStackTrace();
   } finally {
    if (s != null) {
     s.close();
    }
   }
  }

  /** * 删除客户 * */
  public void deleteCustomer(Customer customer) {
   Session s = null;
   Transaction tx = null;
   try {
    s = HibernateUtil.getSession();
    tx = s.beginTransaction();
    s.delete(customer);
    tx.commit();
   } catch (Exception e) {
    if (tx != null) {
     tx.rollback();
    }
    e.printStackTrace();
   } finally {
    if (s != null) {
     s.close();
    }
   }
  }

  /** * 更新客户 * */
  public void update(Customer customer, String name) {
   Session s = null;
   Transaction tx = null;
   try {
    s = HibernateUtil.getSession();
    tx = s.beginTransaction();
    customer.setName(name);
    s.update(customer);
    tx.commit();
   } catch (Exception e) {
    if (tx != null) {
     tx.rollback();
    }
    e.printStackTrace();
   } finally {
    if (s != null) {
     s.close();
    }
   }
  }

  /** * 查询客户 * */
  public Customer findCustomer(Long id) {
   Session s = null;
   Transaction tx = null;
   try {
    s = HibernateUtil.getSession();
    tx = s.beginTransaction();
    customer = (Customer) s.get(Customer.class, id);
    tx.commit();
   } catch (Exception e) {
    if (tx != null) {
     tx.rollback();
    }
    e.printStackTrace();
   } finally {
    if (s != null) {
     s.close();
    }
   }
   return customer;
  }

  /** * 查找所有的客户 * */
  public List<Customer> findAll() {
   Session s = null;
   Transaction tx = null;
   try {
    s = HibernateUtil.getSession();
    tx = s.beginTransaction();
    Query query = s
      .createQuery("from Customer as a order by id asc");
    listCustomer = query.list();
    for (Iterator iter = listCustomer.iterator(); iter.hasNext();) {
     Customer customer = (Customer) iter.next();
     System.out.println("客户ID是:" + customer.getId() + "客户姓名是:"
       + customer.getName());
    }
    tx.commit();
   } catch (Exception e) {
    if (tx != null) {
     tx.rollback();
    }
    e.printStackTrace();
   } finally {
    if (s != null) {
     s.close();
    }
   }
   return listCustomer;
  }
}

public class OrderAction {
 private Order order;
 private List<Order> listorder;

 public Order getorder() {
  return order;
 }

 public void setorder(Order order) {
  this.order = order;
 }

 public List<Order> getListorder() {
  return listorder;
 }

 public void setListorder(List<Order> listorder) {
  this.listorder = listorder;
 }

 public void addorder(Order order) {
  Session s = null;
  Transaction tx = null;
  try {
   s = HibernateUtil.getSession();
   tx = s.beginTransaction();
   s.save(order);
   tx.commit();
  } catch (Exception e) {
   if (tx != null) {
    tx.rollback();
   }
   e.printStackTrace();
  } finally {
   if (s != null) {
    s.close();
   }
  }
 }

 /** * 删除用户 * */
 public void deleteorder(Order order) {
  Session s = null;
  Transaction tx = null;
  try {
   s = HibernateUtil.getSession();
   tx = s.beginTransaction();
   s.delete(order);
   tx.commit();
  } catch (Exception e) {
   if (tx != null) {
    tx.rollback();
   }
   e.printStackTrace();
  } finally {
   if (s != null) {
    s.close();
   }
  }
 }

 public void update(Order order, String number) {
  Session s = null;
  Transaction tx = null;
  try {
   s = HibernateUtil.getSession();
   tx = s.beginTransaction();
   order.setOrderNumber(number);
   s.update(order);
   tx.commit();
  } catch (Exception e) {
   if (tx != null) {
    tx.rollback();
   }
   e.printStackTrace();
  } finally {
   if (s != null) {
    s.close();
   }
  }
 }

 public Order findorder(Long id) {
  Session s = null;
  Transaction tx = null;
  try {
   s = HibernateUtil.getSession();
   tx = s.beginTransaction();
   order = (Order) s.get(Order.class, id);
   tx.commit();
  } catch (Exception e) {
   if (tx != null) {
    tx.rollback();
   }
   e.printStackTrace();
  } finally {
   if (s != null) {
    s.close();
   }
  }
  return order;
 }

 public List<Order> findAll() {
  Session s = null;
  Transaction tx = null;
  try {
   s = HibernateUtil.getSession();
   tx = s.beginTransaction();
   Query query = s.createQuery("from Order as a order by id asc");
   listorder = query.list();
   for (Iterator iter = listorder.iterator(); iter.hasNext();) {
    Order order = (Order) iter.next();
    System.out.println("订单ID是:" + order.getId() + "订单数目是:"
      + order.getOrderNumber());
   }
   tx.commit();
  } catch (Exception e) {
   if (tx != null) {
    tx.rollback();
   }
   e.printStackTrace();
  } finally {
   if (s != null) {
    s.close();
   }
  }
  return listorder;
 }
}

public class Test {
 public static void main(String args[]) {
  Customer customer = new Customer();
  customer.setName("google");
  CustomerAction ca = new CustomerAction();
  /**
   * * 添加对象 *
   */
  ca.addCustomer(customer);

  OrderAction oa = new OrderAction();
  Order order = new Order();
  order.setOrderNumber("77");
  order.setCustomer(customer);
  oa.addorder(order);
 }
}

分享到:
评论
1 楼 heipacker 2014-03-13  
标题党!!

相关推荐

    hibernate_3配置文件参数汇总

    本篇文章将汇总Hibernate 3配置文件中的关键参数,帮助开发者更好地理解和配置Hibernate。 1. **SQL方言(Dialect)**:`hibernate.dialect` 是一个必不可少的配置项,它定义了Hibernate针对特定关系数据库使用的SQL...

    struts2 spring2 hibernate3 配置

    【Struts2、Spring2和Hibernate3整合配置详解】 在Java Web开发中,Struts2、Spring2和Hibernate3的整合应用是常见的技术栈,它实现了MVC(Model-View-Controller)架构,提供了强大的业务逻辑处理、持久化数据管理...

    hibernate3 配置hbm2ddl和hbm2java所需jar

    要使用hbm2ddl,你需要在Hibernate配置文件(如hibernate.cfg.xml)中启用auto-import属性,并指定对应的schema更新策略。 2. hbm2java: hbm2java工具则将Hibernate的映射文件转换为Java实体类。这些实体类是与...

    Hibernate的配置文件

    3. **方言(Dialect)**:指定数据库对应的Hibernate方言,确保SQL语句与数据库兼容。例如: ```xml &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.MySQL5Dialect ``` 4. **缓存设置**:可以选择性...

    Hibernate 参数配置详解

    ### Hibernate 参数配置详解 #### 一、概述 Hibernate 是一款流行的 Java 持久层框架,它通过提供一套丰富的 API 和配置选项来简化数据库访问。本文档将深入探讨 Hibernate 的核心配置参数及其功能,帮助开发者更...

    Spring2+Struts1_2+Hibernate3_0集成时的配置

    Spring2+Struts1_2+Hibernate3_0集成时的配置

    Hibernate基本配置演示

    **Hibernate基本配置演示** 在Java开发中,Hibernate是一款强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用Java对象来处理数据。这篇教程将深入讲解Hibernate的基本配置过程,确保你能顺利...

    hibernate 配置 C3P0 连接池

    在探讨如何在Hibernate框架中配置C3P0连接池之前,我们先简要了解下Hibernate与C3P0的基本概念。 Hibernate是一个开放源代码的对象关系映射(ORM)框架,它实现了Java对象与数据库表之间的映射,允许开发人员以面向...

    memcache也spring,hibernate的配置

    - 在Hibernate配置中指定使用hibernate-memcached作为二级缓存。 - 如果单独使用Spring,需要配置Spring的缓存管理器,并关联xmemcache-spring的相关配置。 - 在需要缓存的方法上使用Spring的缓存注解。 8. **...

    Hibernate 中配置C3P0连接池

    C3P0就是一种广泛使用的第三方JDBC连接池实现,它被集成在Hibernate框架中,可以便捷地进行配置。 **1. 为什么选择C3P0连接池** Hibernate自带的连接池算法并不成熟,主要适用于快速开发和学习,而不适合在生产...

    hibernate配置文件详解

    Hibernate 配置文件详解 Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,用于简化 Java 应用程序中的数据库交互。 Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面...

    spring4配置hibernate3

    本文将详细探讨如何在Spring 4中配置Hibernate 3,以便实现数据持久化功能。这个压缩包文件“spring4-hibernate3-demo”很可能是包含了一个示例项目的源代码,用于演示这种集成。 首先,我们需要理解Spring 4和...

    hibernate配置图像详解

    hibernate的配置介绍,在myeclipse中配置hibernate,hibernate已经在myeclipse中了,创建工程,然后在工程中添加hibernate框架,一些设置

    oracle的hibernate配置文件

    `hibernate1.cfg.xml`是Hibernate配置的核心文件,它定义了数据源、连接池、持久化类、缓存策略等关键信息。以下将逐个解析这些重要部分。 1. 数据源配置: 在`hibernate1.cfg.xml`中,首先需要配置数据源。对于...

    Hibernate核心配置文件对照表

    `hibernate.properties`是Hibernate的核心配置文件,用于设定与数据库连接、缓存策略、事务管理等相关的重要参数。下面我们将详细探讨这个配置文件中的关键知识点。 1. **数据库连接配置** - `hibernate....

    Hibernate程序的配置文件

    3. **方言设置**:方言(Dialect)是Hibernate与特定数据库通信的语言,比如对于MySQL,我们可以设置`&lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.MySQL5Dialect&lt;/property&gt;`。 4. **实体映射**:...

    JAVA 使用hibernate配置实例

    3. 配置Hibernate:创建一个hibernate.cfg.xml配置文件,设置数据库连接信息(如URL、用户名、密码)、JDBC驱动、方言等。 4. 初始化SessionFactory:在代码中通过Configuration类加载配置文件,然后创建...

    Hibernate XML配置表映射实例

    在本实例中,我们将深入探讨如何使用XML配置文件来实现Hibernate的表映射。 首先,Hibernate的XML配置文件通常被称为`hibernate.cfg.xml`,它是连接数据库、定义SessionFactory等核心设置的地方。在这个文件中,...

    Hibernate Search配置及简单应用

    **Hibernate Search配置及简单应用** Hibernate Search是Hibernate框架的一个扩展,它允许我们在应用程序中实现全文检索功能,使得数据库中的数据可以被快速、高效地搜索。这个功能尤其在处理大量文本数据时非常...

Global site tag (gtag.js) - Google Analytics