- 浏览: 516741 次
- 性别:
- 来自: 宁波
-
文章分类
- 全部博客 (137)
- JQuery component (3)
- Web编程控件 (7)
- java (19)
- database (9)
- Web Service (6)
- XML (2)
- FTP (2)
- SSH2 (18)
- javascript (3)
- arcgis (7)
- geoserver (1)
- Openscales (2)
- FME (6)
- HttpClient (3)
- portal (6)
- oracle goldengate (7)
- oracle (3)
- 命令锦集 (1)
- web容器 (3)
- NB博客链接 (2)
- 设计模式 (0)
- ext (2)
- 小工具 (12)
- Flex (1)
- LINUX (1)
- Android (1)
- Maven 入门 (2)
- 负载均衡 (1)
- openlayers (2)
- Flexkkjk (0)
最新评论
-
lgh1992314:
ApplicationContext context = We ...
Spring中的ContextLoaderListener使用 -
lgh1992314:
ContextLoaderServletSpring3.0后删 ...
Spring中的ContextLoaderListener使用 -
gaoqiangjava:
...
Spring中的ContextLoaderListener使用 -
liude33:
好资料啊,网上这方面的资料好少。
goldengate 学习资料 -
AKka:
在实体类中加上@Transient 注解后,为什么还会在数据库 ...
JPA注解 转
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);
}
}
发表评论
-
spring 线程池
2013-10-24 07:30 0spring 配置文件 <!-- app ... -
在javaee项目里集成了hibernate,在使用注解映射表时,老是出现的错误
2012-02-06 14:11 2796在javaee项目里集成了hibernate,在使用注解映射表 ... -
nested exception is org.hibernate.AnnotationException: mappedBy reference an unk
2012-02-06 14:10 4965现有部门与用户两个表 一对多关系 在进行hibern ... -
Hibernate Annotation (Hibernate JPA注解) 实例
2012-01-17 10:06 4063hibernate: 3.6 数据库 oracle ... -
JPA注解 转
2012-01-17 09:53 62101、@Entity(name="EntityName ... -
hibernate反向映射 no entries available
2012-01-16 15:07 4031做项目时,有时需要用hibernate反向映射表,很多时候会出 ... -
Struts2+JSON+jQuery实现异步交互数据时选择要序列化的属性(二使用XML配置方式)
2012-01-13 09:46 1280只需在XML配置就可以了,配置方式是: Xml代码 ... -
Struts2+JSON+jQuery实现异步交互数据时选择要序列化的属性(一注解方式转)
2012-01-13 09:45 1647在使用Struts2的JSON插件,实现Action中的属性序 ... -
Struts2练习--基于注解方式Action配置
2012-01-11 16:59 18069还是已登录来说明下这个Action的配置,这里要说的Actio ... -
Struts2练习-最基本的示例 —转
2012-01-11 16:52 1335转-(查看更多内容请点击http://javacrazyer. ... -
struts2.3.1 注解 HTTP Status 404 - There is no Action mapped for namespace
2012-01-11 16:49 3648使用struts2.3.1 注解配置时 自己将配置文件stru ... -
Spring JDBC模板类—org.springframework.jdbc.core.JdbcTemplate
2011-12-01 14:44 1956转:http://just-do-myself.iteye.c ... -
DWR + Spring 配置问题 No class by name
2011-11-23 16:28 4062[framework] 2011-07-26 16:51:0 ... -
DWR Spring 注解 整合
2011-09-22 23:18 14431、添加相应jar包 2、配置web.xml <?x ... -
项目无法使用Hibernate Reverse Engineering ,解决办法
2011-04-13 18:22 1809手工自己编写hibernater的配置文件。可惜当采用Hibe ... -
用AnnotationSessionFactoryBean生成sessionFactory时报错不能创建sessionFactoyBean(转)
2011-02-16 11:04 4090报错信息: [junit] Testcase: testCr ... -
Spring中的ContextLoaderListener使用
2011-01-18 10:30 40287最近 项目中使用Spring 时,applicationCon ... -
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)(转载)
2010-12-16 13:40 1185在JavaEE企业级开发中,以SSH2框架为核心的应用 ...
相关推荐
本篇文章将汇总Hibernate 3配置文件中的关键参数,帮助开发者更好地理解和配置Hibernate。 1. **SQL方言(Dialect)**:`hibernate.dialect` 是一个必不可少的配置项,它定义了Hibernate针对特定关系数据库使用的SQL...
【Struts2、Spring2和Hibernate3整合配置详解】 在Java Web开发中,Struts2、Spring2和Hibernate3的整合应用是常见的技术栈,它实现了MVC(Model-View-Controller)架构,提供了强大的业务逻辑处理、持久化数据管理...
要使用hbm2ddl,你需要在Hibernate配置文件(如hibernate.cfg.xml)中启用auto-import属性,并指定对应的schema更新策略。 2. hbm2java: hbm2java工具则将Hibernate的映射文件转换为Java实体类。这些实体类是与...
3. **方言(Dialect)**:指定数据库对应的Hibernate方言,确保SQL语句与数据库兼容。例如: ```xml <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect ``` 4. **缓存设置**:可以选择性...
### Hibernate 参数配置详解 #### 一、概述 Hibernate 是一款流行的 Java 持久层框架,它通过提供一套丰富的 API 和配置选项来简化数据库访问。本文档将深入探讨 Hibernate 的核心配置参数及其功能,帮助开发者更...
Spring2+Struts1_2+Hibernate3_0集成时的配置
**Hibernate基本配置演示** 在Java开发中,Hibernate是一款强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用Java对象来处理数据。这篇教程将深入讲解Hibernate的基本配置过程,确保你能顺利...
在探讨如何在Hibernate框架中配置C3P0连接池之前,我们先简要了解下Hibernate与C3P0的基本概念。 Hibernate是一个开放源代码的对象关系映射(ORM)框架,它实现了Java对象与数据库表之间的映射,允许开发人员以面向...
- 在Hibernate配置中指定使用hibernate-memcached作为二级缓存。 - 如果单独使用Spring,需要配置Spring的缓存管理器,并关联xmemcache-spring的相关配置。 - 在需要缓存的方法上使用Spring的缓存注解。 8. **...
C3P0就是一种广泛使用的第三方JDBC连接池实现,它被集成在Hibernate框架中,可以便捷地进行配置。 **1. 为什么选择C3P0连接池** Hibernate自带的连接池算法并不成熟,主要适用于快速开发和学习,而不适合在生产...
Hibernate 配置文件详解 Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,用于简化 Java 应用程序中的数据库交互。 Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面...
本文将详细探讨如何在Spring 4中配置Hibernate 3,以便实现数据持久化功能。这个压缩包文件“spring4-hibernate3-demo”很可能是包含了一个示例项目的源代码,用于演示这种集成。 首先,我们需要理解Spring 4和...
hibernate的配置介绍,在myeclipse中配置hibernate,hibernate已经在myeclipse中了,创建工程,然后在工程中添加hibernate框架,一些设置
`hibernate1.cfg.xml`是Hibernate配置的核心文件,它定义了数据源、连接池、持久化类、缓存策略等关键信息。以下将逐个解析这些重要部分。 1. 数据源配置: 在`hibernate1.cfg.xml`中,首先需要配置数据源。对于...
`hibernate.properties`是Hibernate的核心配置文件,用于设定与数据库连接、缓存策略、事务管理等相关的重要参数。下面我们将详细探讨这个配置文件中的关键知识点。 1. **数据库连接配置** - `hibernate....
3. **方言设置**:方言(Dialect)是Hibernate与特定数据库通信的语言,比如对于MySQL,我们可以设置`<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>`。 4. **实体映射**:...
3. 配置Hibernate:创建一个hibernate.cfg.xml配置文件,设置数据库连接信息(如URL、用户名、密码)、JDBC驱动、方言等。 4. 初始化SessionFactory:在代码中通过Configuration类加载配置文件,然后创建...
在本实例中,我们将深入探讨如何使用XML配置文件来实现Hibernate的表映射。 首先,Hibernate的XML配置文件通常被称为`hibernate.cfg.xml`,它是连接数据库、定义SessionFactory等核心设置的地方。在这个文件中,...
**Hibernate Search配置及简单应用** Hibernate Search是Hibernate框架的一个扩展,它允许我们在应用程序中实现全文检索功能,使得数据库中的数据可以被快速、高效地搜索。这个功能尤其在处理大量文本数据时非常...