新建项目
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简介 几种常用的持久化模式
本资源摘要信息涵盖了 Java 开发实战的基本概念和技术要点,涵盖了开发环境配置、数据库连接和访问、Struts2 Spring Hibernate 整合开发、Web 项目打包和部署、一对多关系实现等知识点,为 Java 开发者提供了一个...
Java英文简历范文知识点总结 一、Java简历写作要点 Java英文简历范文中,需要注意以下要点: * Objective:明确求职目标, Java software development engineer 或其他软件/互联网开发相关岗位 * Education: ...
知识要点 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: 原子性. ...
10. iOS开发要点:简要概述iOS的开发要点,并对iOS系统的架构和技术特点进行了介绍。 本论文旨在设计和开发一款交互客户端--优集品,基于iOS系统,采用C/S架构,使用Java技术设计和实现服务器,并且可以方便的扩展...
" "软件开发基础 "考核要点 "分值 "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项目开发经验" 从提供的文件信息中,我们可以总结出以下知识点: ...这些知识点都是基于Java项目开发经验的总结,涵盖了Java技术应用、项目管理经验、Java项目开发技术要点等多方面的内容。
正文讲述的所有内容,全部都有可运行的代码以演示,这有利于读者尽快地掌握知识要点。 本书适合有一定Java基础(J2SE和Java Web技术)的读者阅读,可作为在校学生、中高级技术开发工程师和其他IT技术人员的参考书...
技术要点: * 使用 Android 客户端应用程序实现社区服务管理 * 采用 B/S 架构和 J2EE 架构 * 使用 Struts 和 Hibernate 框架进行框架环境的搭建 * 使用 MVC 设计模式理念 * 使用 Java 高级程序设计语言来编码 * ...