hibernate 方法
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于hibernate 方法内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在hibernate 方法相关知识领域提供全面立体的资料补充。同时还包含 h6、hack、hadoop 的知识内容,欢迎查阅!
hibernate 方法相关知识
-
引用 Hibernate的rollback方法rollback方法就是事务的回滚.今天在学习Hibernate的时候忽然想到这样一个小问题..算是细节吧..把这个小例子放上来.. 看下面的代码(只把测试方法放上来了..使用JUnit4) @Test ?public void testSave() ?{ tc = session.beginTransaction(); try { User user = new User(); user.setName("张三"); user.setBirthday(new Date()); user.setPassword("123"); session.save(user);//这句执行完以后还没发出Insert语句. ? tc.commit();//这句执行完以后才发出insert语句.. thr
-
hibernate小记( mark )1.hibernate介绍 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 省略mysql-connect包导入以及hibernate 包导入 2.用户类创建 创建一个类User,各种get set方法 package shiyanlou.test.hibernate.entity; /** * Created by junfeng on 17/3/5. */ public class User { p
-
Hibernate commit() 和flush() 的区别<<精通Hibernate java对象持久化技术详解>> ,flush()方法进行清理缓存的操作,执行一系列的SQL语句,但不会提交事务;commit()方法会先调用flush()方法,然后提交事务. 提交事务意味着对数据库所做的更新会永久保持下来 所谓清理,是指Hibernate 按照持久化象的状态来同步更新数据库 Flush()后只是将Hibernate缓存中的数据提交到数据库,如果这时数据库处在一个事物当中,则数据库将这些SQL语句缓存起来,当Hibernate进行commit时,会告诉数据库,你可以真正提交了,这时数据才会永久保存下来,也就是
-
HibernateORM概念O:Object 对象R:Relation 关系 (关系型数据库)外键就是关系M:Mapping 映射关系型数据库,对应的有对象型数据库,比较少用。现在主流的是关系型数据库。MYSQL, Oracle...等都是关系型数据库。ORM解决什么问题?存储:能把对象的数据直接保存到数据库获取:能直接从数据库拿到一个对象要做到上面2点,必须要有映射。图片.pngHibernate和ORM的关系是什么?Hibernate实现了 ORM。ORM相当于是一种思想。比较好的hibernate博文:http://blog.csdn.net/jiuqiyuliang/article/details/39078749图片.png1.Hibernate 案例搭建一个Hibernate环境,开发步骤:1)下载源码:版本:hibernate-distribution-3.6.0.Final2)引入jar文件hibernate3.jar核心 + required 必须引入的(6个)+ jpa + 数据库
hibernate 方法相关课程
hibernate 方法相关教程
- 2. Hibernate 是什么 简而言之:Hibernate 是一个 Java Jdbc 框架,用来简化 Java Jdbc 操作;Hibernate 也是一个ORM 框架,可以自动完成关系数据库中关系型数据到 Java 对象型数据的映射;当然,还可以说是一个持久化框架。以上说法其实是对完成同一件事情不同角度的诠释。Hibernate 的出现就是想让开发者的编码工作变得简单,这个简单指不需要在非核心逻辑编写上花费太多时间。
- 2.1 测试 get() 方法 Student stu=null;try{ // 打开事务 transaction = session.beginTransaction(); //使用get()方法查询学号为1的学生 stu=(Student)session.get(Student.class, new Integer(1)); System.out.println("--------------输出学生信息------------------"); System.out.println(stu.getStuName()); transaction.commit(); } catch (Exception e) { transaction.rollback();} finally { session.close();}System.out.println("***********关闭Session之后******************");System.out.println(stu.getStuName());如上测试代码,和上一节课程的 get() 方法测试有区别:调用 **get()** 方法查询编号为 1 的学生数据,但会在输出学生数据之前先输出一条提示语句,作为标识分割线;关闭 Session 对象后继续使用查询出来的学生数据。查看代码运行结果:selectstudent0_.stuId as stuId1_0_0_,student0_.stuName as stuName2_0_0_,student0_.stuPassword as stuPassw3_0_0_,student0_.stuPic as stuPic4_0_0_,student0_.stuSex as stuSex5_0_0_ fromStudent student0_ wherestudent0_.stuId=?--------------输出学生信息------------------Hibernate是老大***********关闭Session之后******************Hibernate是老大结果能说明什么问题呢?仔细分析输出的日志信息:调用 get() 方法时,Hibernate 就构建了一条 Sql 语句。说明,调用 get() 方法时,Hibernate 就跑了一趟数据库,并拿到了开发者指定的数据;关闭 Session 对象后,程序可以继续使用学生数据。说明,通过 get() 方法获得的数据已经保存到程序运行的内存中,不需要再依赖 Session。想说明什么?不想说明什么?只是一个结论。
- 3. Hibernate 中使用注解 Hibernate 中,通过元数据的方式描述映射关系,其表达语法有 2 种:其一: XML 语法;其二: 本节课程要给大家隆重推荐的是注解语法。注解语法本质就是 Java 语法。
- 3.1 save() 和 persist() 方法 saveOrUpdate( ) 方法很好理解,是 save( ) 和 update( ) 方法的综合简化版,内在本质没改变。save() 和 persist() 方法有细节上的区别。save() 方法原型:public Serializable save(Object object);上一段 save ( ) 方法的测试实例:try { Student stu = new Student("save()方法", "男"); Serializable stuId = session.save(stu); System.out.println("----------输出学生编号Id---------"); System.out.println(stu.getStuId()); System.out.println(stuId); System.out.println("----------事务在后面-------"); transaction = session.beginTransaction(); transaction.commit();} catch (Exception e) { transaction.rollback(); } finally { session.close();} 输出结果:Hibernate: insert into Student (stuName, stuPassword, stuPic, stuSex) values (?, ?, ?, ?)----------输出学生编号Id---------4040----------事务在后面------- 结果即结论:Save() 方法可以在事务之外执行;有一个关键点需要引起重视:无论是在事务之内还是事务之外,save() 方法都会向数据库发送了一条 Sql 语句请求,控制台输出结果是一样的。但是:如果程序中 Hibernate 不显示发送事务提交指令,数据会回滚(丢失);只有当数据库系统接收到程序中发送过来的事务提交指令后,才会真正意义上保存。很好理解,因为事务是交给 Hibernate 管理的,数据库接收到插入指令后,在没有明确事务提交指令之前,只会把数据缓存在内存中。也就是说,虽然 save() 方法看起来不依赖事务就可插入数据,但,没有事务组件的指令,最后也是虚行一场。persist() 方法原型:public void persist(Object object); 上一段 persist() 测试实例:try { Student stu = new Student("persist()方法", "男"); session.persist(stu); System.out.println("----------输出学生编号Id---------"); System.out.println(stu.getStuId()); System.out.println("----------事务在后面-------"); transaction = session.beginTransaction(); System.out.println("-------------事务提交---------------"); transaction.commit(); System.out.println(stu.getStuId());} catch (Exception e) { transaction.rollback();} finally { session.close();}输出结果:----------输出学生编号Id---------null----------事务在后面--------------------事务提交---------------Hibernate: insert into Student (stuName, stuPassword, stuPic, stuSex) values (?, ?, ?, ?)39 persist() 方法只有当事务提交后,才会发送 Sql 请求,数据直接写入数据库,方法本身没有返回值。save() 和 persist() 方法区别:在事务之内调用时,两者区别不大;事务之外,区别明显。save() 返回主键值,persist() 方法没有返回值;persist() 完全依赖事务组件,否则不会提交 Sql 请求;persist() 方法除了可进行 save 操作,还可以进行 update 操作。
- 3. Hibernate 的发展历史 喝水不忘挖井人,先了解下 Hibernate 的发展历程。故事的大致情节就是澳大利亚墨尔本一位名为 Gavin King 的 27 岁的程序员嫌弃原有的 Jdbc 编码工作方式太过无聊、无脑。于是就买了一本 SQL 编程的书籍在不长的时间内写了这么一个叫 Hibernate 的框架。Hibernate 一出江湖,便一鸣惊人如此而已;Hibernate 承载了一个程序员的励志故事。Hibernate 由最初的 1.0 版本演变到了现在 6.x 版本(官网最新显示),功能越来越强大,体积当然也越来越强大。至于你爱不爱它,还是要看项目的需要。故事讲完,继续!
- Hibernate 简介 图片来自 Hibernate 官网
hibernate 方法相关搜索
-
h1
h6
hack
hadoop
halt
hana
handler
hanging
hash
hashtable
haskell
hatch
hbase
hbuilder
hdfs
head
header
header php
headers
headerstyle