【02】框架学习—Hibernate第一个入门案例详解
来源:互联网 发布:3160ac无线网卡优化 编辑:程序博客网 时间:2024/05/18 01:41
续上篇博文:【01】框架学习—Hibernate第一个入门案例
8.Hibernate的映射文件
这里只讲解三个主要标签:
<CLASS>标签:用来将类与数据库建立映射关系,其属性有: name:类的全路径 table:表名(类名和表名一致时可省略) catalog:数据库名称(一般不写,因为在核心配置文件中会写)<id>标签:用来将类中的属性与表中的主键建立映射,即id标签是用来配置主键的,其属性有: name:类中属性名 column:表中字段名(类中属性名与表中字段名一致时可省略) length:字段的长度。如果表结构没有创建,生成时最好指定,一般不写 注意id子标签< generator>,是主键生成策略,class=”native”表示采用本地数据库的主键递增方式。<property>标签:用来将类中普通属性与表中的其它字段建立映射,其属性有: name:类中属性名 column:类中的字段名(类中属性名与表中字段名一致时可省略) length:字段的长度。如果表结构没有创建,生成时最好指定,一般不写 type:数据类型,一般不写
9.Hibernate的核心配置文件hibernate.cfg.xml
必须的配置数据库连接的四参数:hibernate.connection.driver_class:连接数据库驱动程序hibernate.connection.url:连接数据库URLhibernate.connection.username:数据库用户名hibernate.connection.password:数据库密码方言: hibernate.dialect:操作数据库方言(每种数据库特有的语言)加载映射文件 xml方式:<mapping resource="com/iteheima/domain/Customer.hbm.xml" />properties方式:需要在Java程序中加载可选的配置 hibernate.show_sql:显示sql语句,但这样显示的sql语句没有格式化
hibernate.format_sql:格式化sql语句
hibernate.hbm2ddl.auto:通过映射转成DDL语句 ①create:每次创建一个新的表,覆盖旧的表,用于测试
②create-drop:每次创建一个新的表,执行结束后删除表,用于测试 ③update:如果有表,使用原来的表,没有表则创建。同时会更新表结构, 如果类中新增属性时会自动往表中加入字段。开发中常用 ④validate:校验映射文件中类属性与表字段名是否匹配,不一致则报错,一般用于项目完成后
10.代码部分—Configuration类
Configuration对象用于配置并且启动Hibernate。Hibernate应用通过该对象获得对象-关系映射文件中的元数据,以及动态配置Hibernate的属性,然后创建SessionFactory对象。总结:Configuration加载Hibernate配置文件,获取SessionFactory对象。其它应用(了解)Hibernate支持xml和properties类型的配置文件。xml配置文件:通过Configuration config = new Configuration().configure();加载配置文件。properties配置文件:通过Configuration config = new Configuration();加载配置文件,但需要自己手动加载映射文件config.addResource(“映射文件路径”);
11.代码部分——SessionFactory接口
1)工厂类,是生成Session对象的工厂类。2)特点: *由Configuration通过加载配置文件创建该对象。 *SessionFactory对象中保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句。同时,SessionFactory还负责维护Hibernate的二级缓存。 *预定义SQL语句 使用Configuration类创建了SessionFactory对象是已经在SessionFactory对象中缓存了一些SQL语句。 常用的SQL语句是curd(通过主键查询)。 *一个SessionFactory实例对应一个数据库,应用从该对象中获得Session实例。 *SessionFactory是线程安全的,意味着它的一个实例可以被应用的多个线程共享。 *SessionFactory是重量级的,意味着不能随意创建或销毁它的实例。如果只访问一个数据库,只需要创建一个SessionFactory实例,且在应用初始化时完成。 *SessionFactory需要一个较大的缓存,用来存放预定义的SQL语句及实体的映射信息。另外可以配置一个缓存插件,这个插件被称之为Hibernate的二级缓存,被多线程所共享。3)关于二级缓存的图
4)总结 使用一个SessionFactory最好是应用启动时就完成初始化。
12.代码部分——Session接口
1)概述 Session提供和持久化有关的操作,CURD。 Session是程序与数据库交互操作的一个单线程对象,是Hibernate运作的中心。 Session是线程不安全的。 Session对象有一级缓存,显示执行flush之前,所有的持久化操作的数据都缓存在Session对象处。2)特点 线程不安全,应避免多线程共用。 Session是轻量级的,每次客户请求分配独立的Session实例,用完后销毁。 Session的一级缓存。3)常用方法 save(obj):插入记录。 delete(obj):删除记录。 get(Class, id):查询一条记录。 update(obj):更新记录。 saveOrUpdate(obj):保存与修改,数据不存在则保存,已存在则修改。 createQuery():HQL语句的查询方式。
13.代码部分——Transaction接口
1)Transaction是事务的接口2)常用的方法 commit():提交事务。 rollback():回滚事务。3)特点 Hibernate框架默认不自动提交事务,需要手动提交事务。 如果没有开启事务,那么每个Session的操作都相当于一个独立的事务。
阅读全文
0 0
- 【02】框架学习—Hibernate第一个入门案例详解
- 【01】框架学习—Hibernate第一个入门案例
- 【06】框架学习—Struts2第一个入门案例详解
- [Hibernate学习第一课]入门案例
- Hibernate------>第一个hibernate案例
- 第一个 Hibernate 程序(入门详解)
- Hibernate框架入门案例
- Hibernate入门02 - 第一个Hibernate程序
- Hibernate入门02 - 第一个Hibernate程序
- Hibernate入门02 - 第一个Hibernate程序
- 第一个spring入门案例
- Struts2 第一个入门案例
- Hibernate入门学习(3)----第一个Hibernate例子
- Hibernate学习(第二篇)——开发第一个hibernate基本详解
- Hibernate学习笔记 -- day02 hibernateAPI详解以及入门案例演示
- 使用Hibernate编写第一个小案例
- Hibernate------>JDBC第一个案例(连接数据库)
- 第一个hibernate 尝试(hibernate 入门)
- MVP模式从入门到精通
- 枚举Enum
- POJ 3233 Matrix Power Series 笔记
- Oracle函数总结:字符函数
- Java的web
- 【02】框架学习—Hibernate第一个入门案例详解
- HDOJ 2092 整数解
- GitHub的简单使用
- JVM(二)
- EL与JSTL
- 数据结构实验之链表五:单链表的拆分
- C# Newtonsoft.Json解析数组的小例子看懂一个全都会
- unity_NGUI系统学习(八)_Tween动画
- HDOJ2021_发工资