教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 稿件大全 >

尚学堂hibernate笔记

来源:网络收集 时间:2026-08-30
导读: 尚学堂hibernate笔记 1 新建项目 2 学习建立user-library-hibernate,并加入相应的jar包 a项目右键-build path-configure build path-add library b选择user-library,在其中新建library,命命为hibernate c 在该library中加入hibernate所需要的jar包 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 引入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=new AnnotationConfiguration().configure();(有注解时使用AnnotationConfiguration),configure()可以手动指定配置文件名称.

Configuration cfg=new Configuration(),会默认读取hibernate.properties文件

//创建schemaExport对象

import org.hibernate.tool.hbm2ddl.SchemaExport; SchemaExport export=new SchemaExport(cfg);

//创建数据库表

export.create(true, true);

对象映射(采用Annotation注解方式) 1 建表

Create table teacher(id int primary key,name varchar(20),title varchar(20)); 2 创建teacher类,并进行注解@

import javax.persistence.Entity; import javax.persistence.Id;

尚学堂hibernate笔记

在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=new AnnotationConfiguration();

SessionFactory sf=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-mapping package="com.model">

<class name="Student" table=" Student" >

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

<property name="name" column="name" /> <property name="age" column="age" />

</class>

</hibernate-mapping>

2 在hibernate.cfg.xml中添加该映射文件Student.hbm.xml即可

<!-- 建立对应的配置文件关联相应的数据库表 -->

<mapping resource="com/model/Student.hbm.xml"/>注意包名的写法

3 示例

//读取配置文件hibernate.cfg.xml

Configuration cfg=new Configuration().configure();

//创建SessionFactory SessionFactory sf=cfg.configure().buildSessionFactory(); //创建session

Session session=sf.openSession(); session.beginTransaction(); session.save(s);

session.getTransaction().commit();

尚学堂hibernate笔记

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属性为相应的表名 … </class>

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

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

import javax.persistence.Temporal;

尚学堂hibernate笔记

@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.Clob 或者 java.sql.Blob 实例时,必须包含两个步1 在一个数据库事务中先保存一个空的 Blob 或 Clob 实例。 2

接着锁定这条记录,更新上面保存 …… 此处隐藏:14930字,全部文档内容请下载后查看。喜欢就下载吧 ……

尚学堂hibernate笔记.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/754488.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)