`
wangle860102
  • 浏览: 45239 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

配置动用hibernate始末

阅读更多

准备工具等:  eclipse3.1+MyEclipse+jdk+mysql5.0

1:创建数据库.
drop database if exists SAMPLEDB;
create database SAMPLEDB;
use SAMPLEDB;

create table CUSTOMERS (
   ID bigint not null,
   NAME varchar(15),
   AGE int,
   primary key (ID)
);
create table ORDERS (
   ID bigint not null,
   ORDER_NUMBER varchar(15),
   PRICE double precision,
   CUSTOMER_ID bigint,
   primary key (ID)
);
alter table ORDERS add index IDX_CUSTOMER(CUSTOMER_ID),
add constraint FK_CUSTOMER foreign key (CUSTOMER_ID) references CUSTOMERS (ID);
2:新建工程 名称:sample
3:创建struts框架1.2
4:创建hibernate框架,相关映射等.
5:创建一个Action,名称:test
6:创建一个JSP页面.名称:index.jsp,在页面中加入FORM,action为test.do

相关的代码如下:
  在SRC下hibernate.cfg.xml
    <session-factory>
    <property name="myeclipse.connection.profile">conn_mysql</property>
    <property name="connection.url">jdbc:mysql://localhost:3306/sampledb</property>
    <property name="connection.username">root</property>
    <property name="connection.password">root</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property><mapping resource="com/Customers.hbm.xml"></mapping><mapping resource="com/Orders.hbm.xml" />
    </session-factory>
  在SRC下com包中有:4个.JAVA文件:AbstractCustomers.java,AbstractOrders.java,Customers.java,Orders.java 2个xml文件:Customers.hbm.xml,Orders.hbm.xml,此都为创建关联时自动生成.
  Customers.hbm.xml的代码:
   <hibernate-mapping package="com">
    <class name="Customers" table="customers">
        <id name="id" column="ID" type="long">
            <generator class="increment"/>
        </id> 
        <property name="name" column="NAME" type="string" />
        <property name="age" column="AGE" type="integer" /> 
        <set name="ordersSet" inverse="true">
            <key column="CUSTOMER_ID"/>
            <one-to-many class="Orders"/>
        </set>
    </class>  
   </hibernate-mapping>
  Orders.hbm.xml的代码:
    <hibernate-mapping package="com">
    <class name="Orders" table="orders">
        <id name="id" column="ID" type="long">
            <generator class="increment"/>
        </id> 
        <property name="orderNumber" column="ORDER_NUMBER" type="string" />
        <property name="price" column="PRICE" type="double" /> 
        <many-to-one name="customers" column="CUSTOMER_ID" class="Customers" />
    </class>  
    </hibernate-mapping>
在SRC下com.Hibernate包中有:SessionFactory.java  也是创建时生成的.
在com.wind.struts中有:ApplicationResources.properties配置文件.
在com.wind.struts.action中有:TestAction.java
代码:
//Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.0.1/xslt/JavaClass.xsl

package com.wind.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.Customers;
import com.Orders;
import com.Hibernate.SessionFactory;

/**
 * MyEclipse Struts
 * Creation date: 05-08-2006
 *
 * XDoclet definition:
 * @struts.action validate="true"
 */
public class TestAction extends Action {

    // --------------------------------------------------------- Instance Variables

    // --------------------------------------------------------- Methods

    /**
     * Method execute
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     * @throws Exception
     */
    public ActionForward execute(
        ActionMapping mapping,
        ActionForm form,
        HttpServletRequest request,
        HttpServletResponse response) throws Exception {

        // TODO Auto-generated method stub
        saveCustomersAndOrders();
        return (new ActionForward("/index.jsp"));
    }  

    public void saveCustomersAndOrders() throws Exception {
        Session session = SessionFactory.currentSession();
        Transaction ts = session.beginTransaction();

        Customers customers = new Customers();
        customers.setName("wind");
        customers.setAge(new Integer(20));

        session.save(customers);
      
        for(int i=0;i<2;i++){
            Orders orders=new Orders();
            orders.setOrderNumber(Integer.toString(i));
            orders.setPrice(new Double(10+i));
            orders.setCustomers(customers);
            session.save(orders);
        }

        ts.commit();
        session.close();
        SessionFactory.closeSession();
    }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics