尚学堂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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [稿件大全]不忘初心牢记使命 党课演讲稿,忠诚干
- [稿件大全]节能环保演讲稿:给生命关怀
- [稿件大全]《麦田里的守望者》读书报告演讲稿
- [稿件大全]“五四”青年节演讲稿_弘扬“五四精神
- [稿件大全]建国70周年演讲稿:践行新使命 续航新
- [稿件大全]五四演讲稿:弘扬“五四精神”做一名逐
- [稿件大全]建国70周年演讲稿:我和我的祖国
- [稿件大全]高三演讲稿_用梦想点燃青春
- [稿件大全]关于禁毒演讲稿:“健康人生,绿色无毒
- [稿件大全]五四精神演讲稿:继续前行
- [稿件大全]党课演讲稿:以更好的精神状态肩负起新
- [稿件大全]护士演讲稿_做有温度的人,做有意义的
- [稿件大全]书记抓基层党建述职评议大会讲话稿
- [稿件大全]高三成人礼演讲稿:遇见最美的你
- [稿件大全]“五四”青年节演讲稿_传承五四精神 放
- [稿件大全]五四运动一百周年演讲稿:什么是“五四
- [稿件大全]纪念五四运动100周年演讲稿三篇
- [稿件大全]岗位竞选演讲稿
- [稿件大全]演讲稿:敢于担当 为命运掌舵
- [稿件大全]争先创优演讲稿:五心服务铸就五星梦想
- 毕业感言:六年相伴(合集16篇)(毕业
- 毕业三十年的聚会感言(共18篇)(毕业
- 转职能转方式转作风发言稿(精选9篇)(
- 教师比赛开场白(通用16篇)(教师比赛
- 婚礼上新人家长致辞(锦集15篇)(婚礼
- 秘书专业实习的自我总结(合集20篇)
- 高速公路票证员个人工作总结(锦集14篇
- 会计毕业实习报告总结及体会(通用12篇
- 收费站监控员年度个人总结(精选15篇)
- 秋季初中新学期开学第一周国旗下讲话稿
- 支部讨论会主持词(精选16篇)(支部讨
- 小朋友主持词开场白(通用19篇)(小朋
- 小班下学期保育员个人工作总结(精选12
- 工会主席在工会工作会议上的讲话(整理
- 幼儿园衔接班家长会发言稿(锦集18篇)
- 剪刀手爱德华台词(整理6篇)(剪刀手爱
- 国旗下的新年寄语讲话演讲稿(精选18篇
- 物业公司物管员个人总结(共16篇)(物
- 学校晚会主持串词(精选10篇)(学校晚
- 婚礼新人入场主持词(通用15篇)(婚礼




