例子:hibernnate_0100 // hibernate_0100_HelloWorld
引入必须jar包
hibernate3.jar
hibernate-testing.jar
antlr-2.7.6.jar
commons-collections-3.1.jar
javassist-3.9.0.jar
jta-1.1.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.8.jar
log4j-1.2.17.jar
sqljdbc.jar
配置hibernate.cfg.xml文件
1 | sessionFactory = new Configuration(). |
hibernate-mapping配置:
1 | <property name="connection.url"> |
例:hibernate_0101_annotation
hibernate3以后开始支持annocation
annocation的jar包已经被包含在hibernate中,不用再次引用
hibernate-annocation.jar的包已经被包含在hibernate3.jar中
所以找不到
JPQL是EJB2使用的查询语言EJB QL的扩展,它继承了EJB QL并对其做了一些改变。
JPQL全称Java Persistence Query Language Java持久化查询语言
特点:
其特征与原生SQL语句类似,并且完全面向对象,通过类名和属性访问,
而不是表名和表的属性。
1 | select name ,age from user; //原生SQL语句 |
SQL语句是在数据库空间中对字段,列,行进行操作
JPQL语句是在EJB实体空间中面向对象,属性进行操作
JPQL必须由JPA的JPQL解析器解析为SQL才能执行,必须先获取Query对象
error: 不能使用
unexpected token:
http://blog.csdn.net/hmk2011/article/details/6289151
http://docs.oracle.com/javaee/5/api/javax/persistence/Query.html#getResultList%28%29
JPA全称Java Persistence API.
JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,
并将运行期的实体对象持久化到数据库中。
JPQL:
JPA的查询语言是面向对象而非面向数据库的,
它以面向对象的自然语法构造查询语句,
可以看成是Hibernate HQL的等价物。
JPA定义了独特的JPQL(Java Persistence Query Language),
JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,
操作对象是实体,而不是关系数据库的表,
而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有
SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
hibernate and JPA
JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个,
应该说无人能出其右。从功能上来说,
Spring 2.0.1中,正式提供对JPA的支持
通过将@PersistenceContext注解标注在EntityManager类型的字段上,
这样得到的EntityManager就是容器管理的EntityManager。
由于是容器管理的,所以我们不需要也不应该显式关闭注 入的EntityManager实例。
persistence.xml 配置:
1 | <?xml version="1.0" encoding="UTF-8"?> |
即对象关系影射技术,是对象持久化的核心。
ORM是对JDBC的封装,从而解决了JDBC的各种存在问题
EntityManager 是用来对实体Bean 进行操作的辅助类。
他可以用来产生/删除持久化的实体Bean,
通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean。
实体Bean 被EntityManager 管理时,
EntityManager跟踪他的状态改变,
在任何决定更新实体Bean 的时候便会把发生改变的值同步到数据库中。
当实体Bean 从EntityManager 分离后,他是不受管理的,
EntityManager 无法跟踪他的任何状态改变。
EntityManager 的获取前面已经介绍过,
可以通过@PersistenceContext 注释由EJB 容器动态注入.
error:
javax.persistence.PersistenceException: [PersistenceUnit: itcast] class or package not found
persistences.xml不在编译路径下,mvn update 后,build project
mvnsearch:
Hibernate Core Aggregator
1 | <dependency> |
@OneToMany(mappedBy="",cascade=CascadeType.ALL,fetch=FetchType.LAZY)
//拥有mappedBy注解的实体类为关系被维护端
//mappedBy=""中的为多对一方中的对应属性
原文:https://www.cnblogs.com/lijianming180/p/12026751.html