新建项目
2学习建立user-library-hibernate,并加入相应的jar包
a项目右键-build path-configure build path-add library
b选择user-library,在其中新建library,命命为hibernate
c在该library中加入hibernate所需要的jar包
hibernate3.3.2
/hibernate3.jar
/lib/required目录下的所有包6个
Sl4j-nop jar
3引入mysql的JDBC驱动包
4在MYSQL中建数据库和相应的表student(id,name,age)
5建立hibernate配置文件hibernate.cfg.xml
参考文档中COPY,修改对应的数据库连接,
6建立student类
7建立映射文件Student.hbm.xml参考相应文档
8将映射文件加到hibernate-cfg.xml中
搭建日志环境并配置显示DDL语句
slf的实现:slf4j nodep ,log4j ,jdk logging api ,apache common-log.
slf4j.nop.jar是slf-api.jar其相应的接口实现
把slf的接口对到log4j的实现,在user library中hibernate,把slf的实现slf4j-nop-1.5.8.jar去掉,添加log4j的实现log4j-1.2.15.jar,再添加一个slf-api和log4j转换器slf4j-log4j12-1.5.8.jar.
把slf的接口转换成log4j的接口.最后添加一个log4j的配置文件log4j.properties
利用HIBERNATE导出数据库建表
//读取配置文件hibernate.cfg.xml
Configuration cfg=newAnnotationConfiguration().configure();(有注解时使用AnnotationConfiguration),configure()可以手动指定配置文件名称.
Configuration cfg=newConfiguration(),会默认读取hibernate.properties文件
//创建schemaExport对象
importorg.hibernate.tool.hbm2ddl.SchemaExport;
SchemaExport export=newSchemaExport(cfg);
//创建数据库表
export.create(true, true);
对象映射(采用Annotation注解方式)
1建表
Create table teacher(id int primary key,name varchar(20),title varchar(20));
2创建teacher类,并进行注解@
importjavax.persistence.Entity;
importjavax.persistence.Id;
在bean中加注解
@Entity,@Id(加在getId()上面)
3在hibernate中加入annotation相应的jar包
hibernate-annotations.jar
/lib目录下加入相应的包ejb3-persistence.jar, hibernate-commons-annotations.jar
注意:annotation文档中并没有提到hibernate-annotations.jar包
4参考annotation文档建立对应的注解
5在hibernate.cfg.xml中建立映射
<mapping class=”com.xx.xx”/>
6示例
//AnnotationConfiguration;
Configuration cfg=newAnnotationConfiguration();
SessionFactorysf=cfg.configure().buildSessionFactory();
Session session=sf.openSession();
session.beginTransaction();
session.save(t);//
session.getTransaction().commit();
session.close();
sf.close();
对象映射(采用配置文件方式)
1在相应的类中建立对应的配置文件.
例如Student类对应的配置文件Student.hbm.xml
<hibernate-mappingpackage="com.model">
<classname="Student"table=" Student">
<idname="id"column="id"></id>
<propertyname="name"column="name"/>
<propertyname="age"column="age"/>
</class>
</hibernate-mapping>
2在hibernate.cfg.xml中添加该映射文件Student.hbm.xml即可
<!--建立对应的配置文件关联相应的数据库表-->
<mappingresource="com/model/Student.hbm.xml"/>注意包名的写法
3示例
//读取配置文件hibernate.cfg.xml
Configuration cfg=newConfiguration().configure();
//创建SessionFactory
SessionFactorysf=cfg.configure().buildSessionFactory();
//创建session
Session session=sf.openSession();
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
session.close();
sf.close();
hibernate.cfg.xml配置
hibernate.hbm2ddl.auto属性
取值: validate | update | create | create-drop
在sessionfactory创建时,自动检查数据结构,或者将数据库schema(表)的DDL导出到数据库,使用create-drop时,在显式关闭sessionfactory时,将drop掉数据库schema.
validate加载hibernate时,验证创建数据库表结构
create每次加载hibernate,重新创建数据库表结构
create-drop加载hibernate时创建,退出是删除表结构
update加载hibernate自动更新数据库结构
表名和类名不同的情况时,对表名进行配置
1在注解中
import javax.persistence.Table;
@Table(name=”TableName”)
2在XML文件中
<hibernate-mapping package="com.model">
<class name="Teacher"table="Teacher">配置对应的table属性为相应的表名
<id name="id" column="id"></id>
…
</class>
</hibernate-mapping>
字段名和属性名相同,默认为
对于annotation,如果什么注解都不写的话,相当于加了注解@Basic
实体bean中所有的非static非transient的属性都可以被持久化,除非你将其注解为@Transient.所有没有定义注解的属性等价于在其上面添加了@Basic注解.通过@Basic注解可以声明属性的获取策略(fetch strategy):
对于XML文件中不用写column.
字段名和属性名不同时
Annotation:@column(name=”column_name”)加上相应的getXXX()方法上
XML:column属性
不需要persistence的字段
import javax.persistence.Transient;
@ Transient意思是说这个属性是透明的,不进行持久化,存储的时候不存进去
映射日期和时间类型,指定时间精度
Annotation:
importjavax.persistence.Temporal;
@Temporal(TemporalType.TIME)
XML:指定type
<class name="Teacher" table="Teacher" >
<id name="id" column="id"></id>
<property name="name"type="time" />type=time或date
</class>
枚举类型的转换
@Enumerated(EnumType.STRING)
字段映射的位置
推荐写在gexXXX方法上
Hibernate映射类型
Hibernate映射类型
|
Java类型
|
标准SQL类型
|
大小和取值范围
|
integer或者int
|
int或者java.lang.Integer
|
INTEGER
|
4字节
|
long
|
long Long
|
BIGINT
|
8字节
|
short
|
short Short
|
SMALLINT
|
2字节
|
byte
|
byte Byte
|
TINYINT
|
1字节
|
float
|
float Float
|
FLOAT
|
4字节
|
double
|
double Double<
分享到:
Global site tag (gtag.js) - Google Analytics
|
相关推荐
是很好的教材,案例写的很详细,基本知识要点都在上面,hibernate基本都够用了
该文档详解hibernate每一章节知识要点,重在基础,是初级版教学!
答:需要掌握Java语言的知识要点。 8. Web程序的设计模式分为2种,单一JSP设计模式。MVC设计模式。 9. 单一JSP设计模式也称为Model 1(模式1)指应用JSP代码处理用户的请求,然后进行数据处理,再返回结果。优点:...
ORM基础 持久化概念 持久化方案 JDBC面临的问题 ORM简介 ORM产品 Hibernate基础 Hibernate持久化类和关系数据库的映射 Hibernate序列机制 Hibernate核心接口 Hibernate实例
本章知识要点 应用程序的分层体系结构(认识持久化层) 软件的模型 使用JDBC持久化实体域对象 ORM简介 几种常用的持久化模式
知识要点 420 HTML元素 420 标签属性 420 HTML基本标签 422 标题元素 422 HTML格式 427 HTML实体 431 不可拆分的空格 431 HTML表格 439 表格 441 HTML列表 461 HTML图像 469 Img标签和src属性 469 HTML背景 475 内容...
这个文件里面包含java面试题,java知识点,陷阱,jdbc,hibernate,sql语言等,总之,与java相关的各种知识点都已经囊括其中,都是一些值得你反复查看,反复记忆的要点,搞定它,包你笔试面试轻松过!
x-oss-process=style/pnp8(157.43KB,下载次数:9)下载附件2019-10-1720:55上传〖课程介绍〗:知识要点:面向对象设计原则、UML、设计模式、Hibernate底层分析、IOC实现分析课程目标:掌握7大设计原则,掌握UML建模,...
知识要点: Spring的事务管理及实现,Spring操作Hibernate的事务管理器; 回顾上次课的要点: 代理模式,AOP框架,Spring中AOP的实现方式 一、Spring的事务管理 传统数据库事务的特性: Atomic: 原子性. ...
" "软件开发基础 "考核要点 "分值 "30 " "基础知识 "1、数据库基础; " " "2、数据结构; " " "3、程序设计基础; " " "4、网络协议; " " "5、计算机组成原理。 " "数据库应用开发 "考核要点 "分值 "20 " "Oracle...
并对本节所讲的内容先进行概述,讲解概念、技术要点,设计实现思路等内容,最后总结本次课程的要掌握的要点,讲师授课采用先理论,后实战的方式,由浅入深,符合人们接受知识的自然规律。 特点三、学习的过程中...
《21天学通Java Web开发》是Java Web开发的基础教程,针对没有接触过或还不是特别熟悉Java Web开发的读者,详细介绍了Java Web开发的基础概念及技术要点。全书分为6篇共21章内容,第一篇为Java Web基础篇,介绍了...
一、理论要点: 1.分子轨道由原子轨道线性组合而成 分子轨道由原子轨道线性组合而成 分子轨道数=参与组合的原子轨道数目 H 2 中的两个 H ,有两个 1s ,可组合成两个分子轨道 : MO = c1 1 + c2 * MO = c1 1 - c2 ...
正文讲述的所有内容,全部都有可运行的代码以演示,这有利于读者尽快地掌握知识要点。 本书适合有一定Java基础(J2SE和Java Web技术)的读者阅读,可作为在校学生、中高级技术开发工程师和其他IT技术人员的参考书...