hibernate多表关联
来源:互联网 发布:淘宝女鞋分类 编辑:程序博客网 时间:2024/05/17 08:14
[風のJava]Hibernate的一对多关联关系例子.
strutswind 发布于 2006-05-08 11:22
Tags: 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();
}
}
- hibernate多表关联
- hibernate多表关联
- Hibernate对多表关联
- hibernate多表关联总结
- hibernate多表关联配置
- Hibernate多表关联操作
- hibernate多表关联查询
- hibernate多表关联映射
- hibernate多表关联查询
- hibernate多表关联配置
- hibernate多表关联配置
- hibernate多表关联配置
- hibernate多表关联查询
- hibernate多表关联配置
- Hibernate关联之 一对多连接表双向关联
- Hibernate 、多表关联映射-组件关联映射(component)
- Hibernate对多表关联查询
- Hibernate对多表关联查询
- php影响性能的经验总结
- java多态(二)
- [转载]SQL基本语句㈢
- 判断本机IP的DOS命令
- hibernate的多表联合查询
- hibernate多表关联
- [转帖]JAVA中几个易混淆关键词的正确理解
- NetBeans VS Eclipse,新一轮的争端
- Thread Safety in the Standard C++ Library(From MSDN)
- Symbian清除栈的深入分析
- Windows Mobile开发资源介绍
- TIOBE 2008年1月编程语言排行榜——Python 赢得 “2007 年度语言”
- Symbian应用程序运行框架
- java启动文件的制作