Hibernate学习二----------hibernate简介
© 版权声明:本文为博主原创文章,转载请注明出处
1.hibernate.cfg.xml常用配置
- hibernate.show_sql:是否把Hibernate运行时的SQL语句输出到控制台,编码阶段便于测试
- hibernate.foramt_sql:输出到控制台的SQL语句是否进行排版,便于阅读。建议设置为true
- hbm2ddl.auto:可以帮助由java代码生成数据库脚本,进而生成具体的表结构。create|update|create-drop|validate
- hibernate.default_schema:默认的数据库,创建表时会加上对应的数据库。eg:create table hibernate.student(...)
- hibernate.dialect:配置Hibernate数据库方言,Hibernate可针对特殊的数据库进行优化
2.Hibernate执行流程
- 1.应用程序先创建Configuration类的对象,调用对象的configure()方法来读取Hibernate的配置文件(.cfg.xml)和映射文件(.hbm.xml)中的信息
- 2.再调用Configuration对象的buildSessionFactory()方法来创建SessionFactory对象
- 3.再调用SessionFactory对象的openSession()方法,来创建Session对象
- 4.再调用Session对象的beginTransaction()方法,来开启事务,创建Transaction对象
- 5.利用Session对象来对数据进行持久化操作
- 6.持久化操作完成后,Transaction对象提交事务,将数据保存到数据库中
- 7.关闭Session,SessionFactory

说明:
1.不建议直接使用jdbc的connection操作数据库,而是通过使用session来操作数据库
2.session可以理解为操作数据库的对象
3.session与connection是多对一的关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用
4.把对象保存到关系数据库中需要调用session的各种方法,eg:save()、update()、delete()、createQuery()等
3.Hibernate开发流程
1. 编写配置文档hibernate.cfg.xml
2. 编写实体类
3. 生成对应实体类的映射文件并添加到配置文档中
4. 调用Hibernate API进行测试
4.transaction简介
- 1.Hibernate对数据的操作都是封装在事务当中,并且默认是非自动提交方式。所以用session保存对象时,如果不开启事务,并且手动提交事务,对象并不会真正保存在数据库中
- 2.如果你想让Hibernate想jdbc那样自动提交事务,必须调用session对象的doWork()方法,获取jdbc的connection后,设置其为自动提交事务模式(通常并不推荐这样做)
// 创建学生对象
Student student = new Student(1, "张三", "男", new Date(), "张家村"); session.doWork(new Work() { public void execute(Connection connection) throws SQLException { connection.setAutoCommit(true);// 设置为自动提交事务模式 }
}); session.save(student);// 保存对象到数据库中
session.flush();// 强制输出SQL语句
参考:http://www.imooc.com/learn/396
Hibernate学习二----------hibernate简介的更多相关文章
- Hibernate学习(二)关系映射----基于外键的单向一对一
事实上,单向1-1与N-1的实质是相同的,1-1是N-1的特例,单向1-1与N-1的映射配置也非常相似.只需要将原来的many-to-one元素增加unique="true"属性, ...
- Hibernate基础学习(二)—Hibernate相关API介绍
一.Hibernate的核心接口 所有的Hibernate应用中都会访问Hibernate的5个核心接口. (1)Configuration接口: 配置Hibernate,启动Hi ...
- hibernate学习二 基本用法
一 映射文件User.hbm.xml 定义了持久化类实例是如何存储和加载的,这个文件定义了持久化类和表的映射. 根据映射文件,Hibernate可以生成足够的信息以产生所有的SQL语句,也就是类的实 ...
- Hibernate学习0.Hibernate入门
Hibernate是什么 面向java环境的对象/关系数据库映射工具. 1.开源的持久层框架. 2.ORM(Object/Relational Mapping)映射工具,建立面向对象的域模型和关系数据 ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- hibernate学习之Hibernate API
1. Hibernate Api分类 1)提供访问数据库的操作(如保存,更新,删除,查询)的接口.这些接口包括:Session, Transaction,,Query接口. 2)由于配置Hiberna ...
- Hibernate学习之Hibernate流程
Hibernate的核心组件 在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.properties或hibernate. ...
- hibernate学习二(HelloWorld)
一.建立hibernate配置文件 在工程Hibernate_01_HelloWorld下的src上建立hibernate.cfg.xml,打开hibernate-release-4.3.11.Fin ...
- hibernate学习(二)
hibernate 单向一对多映射 一.数据表设计 数据库名:hibernate5 数据表: ①表名:CUSTOMERS 字段: CUSTOMER_ID CUSTOMER_NAME ②表名:ORDE ...
随机推荐
- 微信小程序统一服务消息下发接口 公众号和小程序消息都可以在一个接口推送了
昨天晚上,2018年9月11日,微信官方又更新了一大波的小程序功能.重点我们来谈谈这个功能,微信叫做统一服务消息下发接口. 这个是官方的文档 统一服务消息 · 小程序https://develope ...
- 解决IIS无法访问远程映射目录
由于影像系统(PACS)需要存储大量影像文件动辄几十T,所以经常会用到远程影像的独立文件盘, 挂载了远程映射盘后,本机可以直接访问 IIS中就直接报错了 . A机器:IIS WEB服务器 B机器:文件 ...
- C/C++学习路线
随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者.而在今天,它又扮演着什么样重要的角色呢?请往下看: 后端服务器,移 ...
- onCreate、onStart、onResume、onPause、onStop、onDestory(转)
程序正常启动:onCreate()->onStart()->onResume();正常退出:onPause()->onStop()->onDestory() 一个Activit ...
- android基本控件学习-----Button
Button讲解: 一.在我们实际的使用button的时候经常会对button不同状态会有不同的显示,在讲解Button前,首先对drawable下面的statelistdrawable的相关知识讲一 ...
- [翻译][Nokogiri官方教程] 解析HTML/XML文档 / Parsing an HTML/XML Document
From a String From a File From the Internet Parse Options Encoding 原文: Parsing an HTML/XML Document ...
- LeetCode OJ-- 3Sum **
https://oj.leetcode.com/problems/3sum/ 在一个数列中,求出所有3个数之和是0的3个数. 刚开始给自己挖了坑,由于没闹清,unique()函数的含义,去掉重复不彻底 ...
- 前端优化之Combo Handler
Combo Handler来合并CSS/JS文件 背景 Combo Handler是Yahoo!开发的一个Apache模块,它实现了开发人员简单方便地通过URL来合并JavaScript和CSS文件, ...
- C# .NET4.0 改为 到.NET2.0 时 TypedTableBase 报错解决方法
.NET 4.0 降版本 到.NET 2.0.不出意外,问题必然来了. 编译错误一: 错误 1 命名空间“System”中不存在类型或命名空间名称“Linq”(是缺少程序集引用吗?)解决: 删掉该引用 ...
- HDU 5131.Song Jiang's rank list (2014ACM/ICPC亚洲区广州站-重现赛)
Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java ...