`

Hibernate学习(一)--Hibernate知识要点1

阅读更多

新建项目

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引入mysqlJDBC驱动包

4MYSQL中建数据库和相应的表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.jarslf-api.jar其相应的接口实现

slf的接口对到log4j的实现,user libraryhibernate,slf的实现slf4j-nop-1.5.8.jar去掉,添加log4j的实现log4j-1.2.15.jar,再添加一个slf-apilog4j转换器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()上面)

3hibernate中加入annotation相应的jar

hibernate-annotations.jar

/lib目录下加入相应的包ejb3-persistence.jar, hibernate-commons-annotations.jar

注意:annotation文档中并没有提到hibernate-annotations.jar

4参考annotation文档建立对应的注解

5hibernate.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>

2hibernate.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”)

2XML文件中

<hibernate-mapping package="com.model">

<class name="Teacher"table="Teacher">配置对应的table属性为相应的表名

<id name="id" column="id"></id>

</class>

</hibernate-mapping>

字段名和属性名相同,默认为

对于annotation,如果什么注解都不写的话,相当于加了注解@Basic

实体bean中所有的非statictransient的属性都可以被持久化,除非你将其注解为@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=timedate

</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<

分享到:
评论

相关推荐

    hibernate学习

    是很好的教材,案例写的很详细,基本知识要点都在上面,hibernate基本都够用了

    Hibernate详解基础教程

    该文档详解hibernate每一章节知识要点,重在基础,是初级版教学!

    JSP程序设计课件包含Hibernate,Struts的介绍

    答:需要掌握Java语言的知识要点。 8. Web程序的设计模式分为2种,单一JSP设计模式。MVC设计模式。 9. 单一JSP设计模式也称为Model 1(模式1)指应用JSP代码处理用户的请求,然后进行数据处理,再返回结果。优点:...

    Hibernate框架基础

    ORM基础 持久化概念 持久化方案 JDBC面临的问题 ORM简介 ORM产品 Hibernate基础 Hibernate持久化类和关系数据库的映射 Hibernate序列机制 Hibernate核心接口 Hibernate实例

    hibernate培训

    本章知识要点 应用程序的分层体系结构(认识持久化层) 软件的模型 使用JDBC持久化实体域对象 ORM简介 几种常用的持久化模式

    Java语言基础下载

    知识要点 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面试题,java知识点,陷阱,jdbc,hibernate,sql语言等,总之,与java相关的各种知识点都已经囊括其中,都是一些值得你反复查看,反复记忆的要点,搞定它,包你笔试面试轻松过!

    Java设计模式(2.78G)

    x-oss-process=style/pnp8(157.43KB,下载次数:9)下载附件2019-10-1720:55上传〖课程介绍〗:知识要点:面向对象设计原则、UML、设计模式、Hibernate底层分析、IOC实现分析课程目标:掌握7大设计原则,掌握UML建模,...

    spring培训笔记

    知识要点: Spring的事务管理及实现,Spring操作Hibernate的事务管理器; 回顾上次课的要点: 代理模式,AOP框架,Spring中AOP的实现方式 一、Spring的事务管理 传统数据库事务的特性: Atomic: 原子性. ...

    “桂林高新杯”软件设计大赛.doc

    " "软件开发基础 "考核要点 "分值 "30 " "基础知识 "1、数据库基础; " " "2、数据结构; " " "3、程序设计基础; " " "4、网络协议; " " "5、计算机组成原理。 " "数据库应用开发 "考核要点 "分值 "20 " "Oracle...

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台

    并对本节所讲的内容先进行概述,讲解概念、技术要点,设计实现思路等内容,最后总结本次课程的要掌握的要点,讲师授课采用先理论,后实战的方式,由浅入深,符合人们接受知识的自然规律。 特点三、学习的过程中...

    21天学通Java Web开发.pdf

    《21天学通Java Web开发》是Java Web开发的基础教程,针对没有接触过或还不是特别熟悉Java Web开发的读者,详细介绍了Java Web开发的基础概念及技术要点。全书分为6篇共21章内容,第一篇为Java Web基础篇,介绍了...

    服务器端接口编程.pptx

    一、理论要点: 1.分子轨道由原子轨道线性组合而成 分子轨道由原子轨道线性组合而成 分子轨道数=参与组合的原子轨道数目 H 2 中的两个 H ,有两个 1s ,可组合成两个分子轨道 : MO = c1 1 + c2 * MO = c1 1 - c2 ...

    JBoss平台上的Java EE程序开发指南 源码

    正文讲述的所有内容,全部都有可运行的代码以演示,这有利于读者尽快地掌握知识要点。  本书适合有一定Java基础(J2SE和Java Web技术)的读者阅读,可作为在校学生、中高级技术开发工程师和其他IT技术人员的参考书...

Global site tag (gtag.js) - Google Analytics