- 浏览: 763 次
- 来自: ...
文章分类
最新评论
hibernate
在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准。它非常强大、灵活,而且具备了优异的性能。在本文中,我们将了解如何使用Java 5 注释来简化Hibernate代码,并使持久层的编码过程变得更为轻松。
传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载。
在最近发布的几个Hibernate版本中,出现了一种基于 Java 5 注释的更为巧妙的新方法。借助新的 Hibernate Annotation 库,即可一次性地分配所有旧映射文件--- 一切都会按照您的想法来定义——注释直接嵌入到您的Java 类中,并提供一种强大及灵活的方法来声明持久性映射。
目前,JPA(Java Persistence API)的使用范围越来越广,作为Java EE 5.0平台标准的ORM规范,得到了诸如:Hibernate、TopLink、OpenJpa等ORM框架的支持,同时还是EJB 3.0的重要组成部分。JPA的宗旨是为POJO提供持久化标准规范。它能够脱离容器独立运行,方便开发和测试。本文将通过一个小实例来说明如何在Hibernate中使用JPA,来达到简化编程的目的。
Hibernate Annotations核心注解
Java代码 收藏代码
@Entity 声明当前是一个持久化类
@Table 设置当前持久化类所映射的数据库表,如果当前类中没有使用@Table注解,Hibernate会自动使用默认的持久化类的类名(不带包名)作为所映射的表名
@Id 设置当前持久化类的标示符属性
@GeneratedValue 设置当前标示符的生产策略。@GeneratedValue的name属性设置生成策略的名称是TABLE、INENTITY、SEQUENCE或者AUTO之一。
@Column 将持久化类的数学与数据库表中的字段进行映射,name属性值为映射的字段名,length属性值为字段的长度,unique属性表示该列上设置唯一的约束,nullable属性设置该列的值是否可以为空,precision实现设置该字段的精度,scale属性设置该字段的小数位数
@Transient 标注的属性进行持久化映射
@Temporal java中没有定义时间精度的api,因此处理时间类型数据时,需要设置存储在数据库中所预期的精度,使用@Temporal注释可以调整时间的精度为:DATE、TIME和TIMESTAMP三种
@ManyToOne 设置该当前持久化类类与其他持久化类之间的多对一关联,其中CascadeType值表示Hibernate将进行级联操作
@OneToMany 设置该当前持久化类与其他持久化类之间的一对多关联
@OneToOne 设置该当前持久化类与其他持久化类之间的一对一关联
@ManyToMany 设置该当前持久化类与其他持久化类之间的多对多关联
@NameQueries 在持久化类中设置命名查询,参考@NameQuery的使用
@NameQuery 在持久化类中设置命名查询,@NamedQuery 和@NamedQueries注释加在在类和包上。如下面的例子:
@NamedQueries({@NamedQuery(name="queryById",query="select p from Product p where id=:id")})
@Version 设置乐观锁定
@Cache 设置二级缓存
@Filters 设置使用过滤器
@FilterDef 声明过滤器
demo
比如有2个表 一个CATEGORY
Sql代码 收藏代码
-- Create table
create table CATEGORY
(
ID NUMBER(8) not null,
NAME NVARCHAR2(200),
DESCRIPTION VARCHAR2(1000)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table CATEGORY
add constraint CATEGORY_PK primary key (ID)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
一个PRODUCT
Sql代码 收藏代码
-- Create table
create table PRODUCT
(
ID NUMBER(8) not null,
NAME VARCHAR2(200),
PRICE NUMBER(6,2),
DESCRIPTION VARCHAR2(1000),
CREATE_TIME DATE,
CATEGORY_ID NUMBER(8)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table PRODUCT
add constraint PRODUCT_PK primary key (ID)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
alter table PRODUCT
add constraint PRODUCT_FK foreign key (CATEGORY_ID)
references CATEGORY (ID);
可用MyEclipse 生成对应的持久化类,区别 平时的Hibernate 创建的都是*.hbm.xml而现在是
add Hibernate mapping annotations to POJO
Category.java
Java代码 收藏代码
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "CATEGORY", schema = "SCOTT")
public class Category implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String name;
private String description;
private Set<Product> products = new HashSet<Product>(0);
public Category() {
}
// Property accessors
@GenericGenerator(name = "generator", strategy = "increment")
@Id
@GeneratedValue(generator = "generator")
@Column(name = "ID", unique = true, nullable = false, precision = 8, scale = 0)
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "NAME", length = 400)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "DESCRIPTION", length = 1000)
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "category")
public Set<Product> getProducts() {
return this.products;
}
public void setProducts(Set<Product> products) {
this.products = products;
}
}
product.java
Java代码 收藏代码
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "PRODUCT", schema = "SCOTT")
public class Product implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private Category category;
private String name;
private Double price;
private String description;
private Date createTime;
public Product() {
}
@GenericGenerator(name = "generator", strategy = "increment")
@Id
@GeneratedValue(generator = "generator")
@Column(name = "ID", unique = true, nullable = false, precision = 8, scale = 0)
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CATEGORY_ID")
public Category getCategory() {
return this.category;
}
public void setCategory(Category category) {
this.category = category;
}
@Column(name = "NAME", length = 200)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "PRICE", precision = 6)
public Double getPrice() {
return this.price;
}
public void setPrice(Double price) {
this.price = price;
}
@Column(name = "DESCRIPTION", length = 1000)
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
@Temporal(TemporalType.DATE)
@Column(name = "CREATE_TIME", length = 7)
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
Java代码 收藏代码
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateAnnotationsTest {
public void testAnnotations() {
SessionFactory sessionFactory = new AnnotationConfiguration().configure()
.buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
Category category = new Category();
category.setName("demo");
category.setDescription("这是一个例子");
Product product = new Product();
product.setName("妮维雅");
product.setPrice(new Double(46.0));
product.setDescription("护肤品");
product.setCategory(category);
category.getProducts().add(product);
Transaction tx = session.beginTransaction();
session.save(category);
session.save(product);
tx.commit();
sessionFactory.close();
}
public static void main(String[] args) {
HibernateAnnotationsTest test = new HibernateAnnotationsTest();
test.testAnnotations();
}
}
注意: 回报这种错误 java.lang.NoSuchMethodError: org.hibernate.event.PreInsertEvent.getSource()Lorg/hibernate/engine/SessionImplementor;
解决方法 替换hibernate-annotation.jar 和hibernate-validator.jar 换成新点的 或者你把hibernate-validator.jar 移除也行
hibernate-annotation.jar 换成3.4.0的就好了,3.5.1-Final还会报一个缺少MetadataProvider的类具体没太注意解决的方法,validator我换的是4.0.2的其他的没测试应该也没什么问题...
@GeneratedValue注解生成策略
TABLE 借助数据库表,生成存标识符属性值,表中保存当前的标识符属性的最大值
IDENTITY 使用数据库表中的自动增长字段生成标识符属性值
SEQUENCE 使用数据库的序列生成标识符属性值
AUTO 可以是上面三种任意一种类型,取决于底层数据库的类型
Hibernate EntityManager
java Persistence API(JPA)
java persistence api 是ejb3.0规范之一,定义了对数据库数据进行持久化操作的接口,Hibernate使用 Hibernate annotations和Hibernate EntityManager实现了JPA
会使用到 Hibernate-EntityManager.jar和jboss-archive-browing.jar
和Annotation不同的是没有用到hibernate.cfg.xml 而是使用persistence.xml文件的实现填写信息而xml文件必须在META-INF文件夹下其余的基本相同
persistence.xml
Xml代码 收藏代码
<?xml version='1.0' encoding='UTF-8'?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.23.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/ns/persistence http://java.sun.com/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="entityManagerTest">
<provider>org.hibernate.ejb.HibernatePersistence
</provider>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
<property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" />
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:dbrbh" />
<property name="hibernate.connection.username" value="scott" />
<property name="hibernate.connection.password" value="tiger" />
</properties>
</persistence-unit>
</persistence>
Java代码 收藏代码
//EntityManagerFactory==SessionFactory
EntityManagerFactory emf = Persistence.createEntityManagerFactory("entityManagerTest");
//EntityManager == session
EntityManager entityManager = emf.createEntityManager();
//EntityTransaction == Transaction
EntityTransaction tx = entityManager.getTransaction();
//entityManager persist()=Session.save()
entityManager.persist(category);
传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载。
在最近发布的几个Hibernate版本中,出现了一种基于 Java 5 注释的更为巧妙的新方法。借助新的 Hibernate Annotation 库,即可一次性地分配所有旧映射文件--- 一切都会按照您的想法来定义——注释直接嵌入到您的Java 类中,并提供一种强大及灵活的方法来声明持久性映射。
目前,JPA(Java Persistence API)的使用范围越来越广,作为Java EE 5.0平台标准的ORM规范,得到了诸如:Hibernate、TopLink、OpenJpa等ORM框架的支持,同时还是EJB 3.0的重要组成部分。JPA的宗旨是为POJO提供持久化标准规范。它能够脱离容器独立运行,方便开发和测试。本文将通过一个小实例来说明如何在Hibernate中使用JPA,来达到简化编程的目的。
Hibernate Annotations核心注解
Java代码 收藏代码
@Entity 声明当前是一个持久化类
@Table 设置当前持久化类所映射的数据库表,如果当前类中没有使用@Table注解,Hibernate会自动使用默认的持久化类的类名(不带包名)作为所映射的表名
@Id 设置当前持久化类的标示符属性
@GeneratedValue 设置当前标示符的生产策略。@GeneratedValue的name属性设置生成策略的名称是TABLE、INENTITY、SEQUENCE或者AUTO之一。
@Column 将持久化类的数学与数据库表中的字段进行映射,name属性值为映射的字段名,length属性值为字段的长度,unique属性表示该列上设置唯一的约束,nullable属性设置该列的值是否可以为空,precision实现设置该字段的精度,scale属性设置该字段的小数位数
@Transient 标注的属性进行持久化映射
@Temporal java中没有定义时间精度的api,因此处理时间类型数据时,需要设置存储在数据库中所预期的精度,使用@Temporal注释可以调整时间的精度为:DATE、TIME和TIMESTAMP三种
@ManyToOne 设置该当前持久化类类与其他持久化类之间的多对一关联,其中CascadeType值表示Hibernate将进行级联操作
@OneToMany 设置该当前持久化类与其他持久化类之间的一对多关联
@OneToOne 设置该当前持久化类与其他持久化类之间的一对一关联
@ManyToMany 设置该当前持久化类与其他持久化类之间的多对多关联
@NameQueries 在持久化类中设置命名查询,参考@NameQuery的使用
@NameQuery 在持久化类中设置命名查询,@NamedQuery 和@NamedQueries注释加在在类和包上。如下面的例子:
@NamedQueries({@NamedQuery(name="queryById",query="select p from Product p where id=:id")})
@Version 设置乐观锁定
@Cache 设置二级缓存
@Filters 设置使用过滤器
@FilterDef 声明过滤器
demo
比如有2个表 一个CATEGORY
Sql代码 收藏代码
-- Create table
create table CATEGORY
(
ID NUMBER(8) not null,
NAME NVARCHAR2(200),
DESCRIPTION VARCHAR2(1000)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table CATEGORY
add constraint CATEGORY_PK primary key (ID)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
一个PRODUCT
Sql代码 收藏代码
-- Create table
create table PRODUCT
(
ID NUMBER(8) not null,
NAME VARCHAR2(200),
PRICE NUMBER(6,2),
DESCRIPTION VARCHAR2(1000),
CREATE_TIME DATE,
CATEGORY_ID NUMBER(8)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table PRODUCT
add constraint PRODUCT_PK primary key (ID)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
alter table PRODUCT
add constraint PRODUCT_FK foreign key (CATEGORY_ID)
references CATEGORY (ID);
可用MyEclipse 生成对应的持久化类,区别 平时的Hibernate 创建的都是*.hbm.xml而现在是
add Hibernate mapping annotations to POJO
Category.java
Java代码 收藏代码
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "CATEGORY", schema = "SCOTT")
public class Category implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String name;
private String description;
private Set<Product> products = new HashSet<Product>(0);
public Category() {
}
// Property accessors
@GenericGenerator(name = "generator", strategy = "increment")
@Id
@GeneratedValue(generator = "generator")
@Column(name = "ID", unique = true, nullable = false, precision = 8, scale = 0)
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "NAME", length = 400)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "DESCRIPTION", length = 1000)
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "category")
public Set<Product> getProducts() {
return this.products;
}
public void setProducts(Set<Product> products) {
this.products = products;
}
}
product.java
Java代码 收藏代码
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "PRODUCT", schema = "SCOTT")
public class Product implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private Category category;
private String name;
private Double price;
private String description;
private Date createTime;
public Product() {
}
@GenericGenerator(name = "generator", strategy = "increment")
@Id
@GeneratedValue(generator = "generator")
@Column(name = "ID", unique = true, nullable = false, precision = 8, scale = 0)
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CATEGORY_ID")
public Category getCategory() {
return this.category;
}
public void setCategory(Category category) {
this.category = category;
}
@Column(name = "NAME", length = 200)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "PRICE", precision = 6)
public Double getPrice() {
return this.price;
}
public void setPrice(Double price) {
this.price = price;
}
@Column(name = "DESCRIPTION", length = 1000)
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
@Temporal(TemporalType.DATE)
@Column(name = "CREATE_TIME", length = 7)
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
Java代码 收藏代码
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateAnnotationsTest {
public void testAnnotations() {
SessionFactory sessionFactory = new AnnotationConfiguration().configure()
.buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
Category category = new Category();
category.setName("demo");
category.setDescription("这是一个例子");
Product product = new Product();
product.setName("妮维雅");
product.setPrice(new Double(46.0));
product.setDescription("护肤品");
product.setCategory(category);
category.getProducts().add(product);
Transaction tx = session.beginTransaction();
session.save(category);
session.save(product);
tx.commit();
sessionFactory.close();
}
public static void main(String[] args) {
HibernateAnnotationsTest test = new HibernateAnnotationsTest();
test.testAnnotations();
}
}
注意: 回报这种错误 java.lang.NoSuchMethodError: org.hibernate.event.PreInsertEvent.getSource()Lorg/hibernate/engine/SessionImplementor;
解决方法 替换hibernate-annotation.jar 和hibernate-validator.jar 换成新点的 或者你把hibernate-validator.jar 移除也行
hibernate-annotation.jar 换成3.4.0的就好了,3.5.1-Final还会报一个缺少MetadataProvider的类具体没太注意解决的方法,validator我换的是4.0.2的其他的没测试应该也没什么问题...
@GeneratedValue注解生成策略
TABLE 借助数据库表,生成存标识符属性值,表中保存当前的标识符属性的最大值
IDENTITY 使用数据库表中的自动增长字段生成标识符属性值
SEQUENCE 使用数据库的序列生成标识符属性值
AUTO 可以是上面三种任意一种类型,取决于底层数据库的类型
Hibernate EntityManager
java Persistence API(JPA)
java persistence api 是ejb3.0规范之一,定义了对数据库数据进行持久化操作的接口,Hibernate使用 Hibernate annotations和Hibernate EntityManager实现了JPA
会使用到 Hibernate-EntityManager.jar和jboss-archive-browing.jar
和Annotation不同的是没有用到hibernate.cfg.xml 而是使用persistence.xml文件的实现填写信息而xml文件必须在META-INF文件夹下其余的基本相同
persistence.xml
Xml代码 收藏代码
<?xml version='1.0' encoding='UTF-8'?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.23.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/ns/persistence http://java.sun.com/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="entityManagerTest">
<provider>org.hibernate.ejb.HibernatePersistence
</provider>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
<property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" />
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:dbrbh" />
<property name="hibernate.connection.username" value="scott" />
<property name="hibernate.connection.password" value="tiger" />
</properties>
</persistence-unit>
</persistence>
Java代码 收藏代码
//EntityManagerFactory==SessionFactory
EntityManagerFactory emf = Persistence.createEntityManagerFactory("entityManagerTest");
//EntityManager == session
EntityManager entityManager = emf.createEntityManager();
//EntityTransaction == Transaction
EntityTransaction tx = entityManager.getTransaction();
//entityManager persist()=Session.save()
entityManager.persist(category);
相关推荐
Hibernate 配置各种数据库 Hibernate 是一个基于 Java 的持久层框架,提供了一个抽象的数据访问层,能够与多种数据库进行集成。在 Hibernate 的配置文件中,我们可以配置不同的数据库连接,包括驱动程序、URL 等...
Hibernate.jar包,Hibernate可以应用在任何使用JDBC的场合,包含 hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-...
"Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...
项目原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6 二、 项目目的: 整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + ...
【hibernate学习资料大全】 Hibernate 是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。这个压缩包包含了丰富的Hibernate学习资源,旨在帮助开发者深入理解和熟练掌握这一强大的...
《Hibernate-Extensions全面指南》 Hibernate,作为Java领域中的一款著名对象关系映射(ORM)框架,极大地简化了数据库操作。然而,为了满足更复杂的业务需求,Hibernate还提供了丰富的扩展功能,这就是我们今天要...
【描述】中的"hibernate的jar包"指的是Hibernate框架的运行库文件,这些JAR文件包含了Hibernate的所有核心API、实现和依赖库,如Hibernate Commons Annotations、Hibernate EntityManager、Hibernate Core等。...
Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库,极大地简化了数据访问层的编程工作。这个压缩包包含了Hibernate的基础jar包,这些jar文件是开发Hibernate应用所...
HibernateTools是Java开发人员在使用Hibernate ORM框架时的有力辅助工具集,主要目的是为了提高开发效率,简化数据库操作。在HibernateTools 3.2.4版本中,它包含了一系列的特性与插件,以支持更便捷地进行对象关系...
在Java开发环境中,与KingbaseV8数据库进行交互通常会用到Hibernate框架和JDBC驱动。 Hibernate是一个优秀的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作,通过将Java对象与数据库表进行映射,...
Hibernate3 是一个强大的Java持久化框架,它允许开发者将数据库操作与业务逻辑解耦,使得应用程序的开发更为简便。这个“hibernate3全部jar包:hibernate3.jar.zip”包含了所有必要的库文件,方便用户一次性下载并...
Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与数据库之间的交互。在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用...
标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端...
标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...
包含hibernate所有所需jar包还有一些其他包日志包、jpa支持包等: 列如:hibernate-core-5.1.0.Final.jar hibernate-ehcache-5.1.0.Final.jar hibernate-entitymanager-5.1.0.Final.jar hibernate-envers-5.1.0....
Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使开发者可以更加专注于业务逻辑而不是数据访问层的实现。本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之...
Hibernate3 是一个非常重要的Java持久化框架,它允许开发者将对象模型与数据库关系模型进行映射,从而简化了数据存取的过程。这个压缩包“hibernate3必要jar包”显然是针对Hibernate3版本的,已经去除了冗余的库文件...
Hibernate3是Hibernate的第三个主要版本,发布于2005年,它提供了一种将Java对象与数据库表之间的映射方式,使得数据库操作更加面向对象。该框架支持多种数据库,包括MySQL、Oracle、SQL Server等,并且通过JDBC API...
Hibernate 是一个著名的开源对象关系映射(ORM)框架,它为Java开发者提供了便捷的数据持久化方式,使得在Java应用程序中操作数据库变得更加简单。这个“hibernate_3.2官方开发包”包含了所有你需要开发基于...