hibernate入门

在这里插入图片描述1、什么是hibernate

Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java对象,其优势之一:跨数据库的无缝移植

2、如何在项目中添加hibernate支持(手动添加)
a、添加hibernate相关依赖
b、在resource目录下添加hibernate.cfg.xml(核心配置文件)

添加DTD支持(具体操作在https://blog.csdn.net/weixin_42687829/article/details/82994891有详细介绍)
添加Hibernate的配置
数据库相关(connection.username|connection.password|connection.url|connection.driver_class|dialect)
调试相关(show_sql|format_sql)
hibernate.cfg.xml文件:
在这里插入图片描述

c、在开发阶段再创建实体类和实体映射文件(通常格式为*.hbm.xml)
实体必须实现Serializable接口

一个实体映射文件实例:
在这里插入图片描述

注:JavaBean的主键类型只能是int类型,因为在映射关系中配置是自动增长的,String类型是不能自动增长的。如果是你设置了String类型,又使用了自动增长,那么就会报出下面的错误Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table ‘t_hibernate_user’ does
3、如何使用hibernate完成CRUD操作
a、CRUD操作步骤

读取配置
创建SessionFactory(建模获取sessionfactory)
打开Session
开启事务
执行数据库操作
提交事务/回滚事务
关闭Session
b、注意事项
4.2.1 hibernate默认使用的是手动事务,因此必须显示的开启和提交事务
4.2.2 删除操作时,必须先查再删

一个crud实例:
在这里插入图片描述

附:

SessionFactory对象:
SessionFactory代表数据库存储源。根据Hibernate配置文件创建对应的数据库存储源。
SessionFactory对象创建后,和Configuration对象再无关联。修改Configuration包含的配置文件信息,不会对SessionFactory有任何影响。

       获取SessionFactory对象:new Configuration().configure().buildSessionFactory();对象的缓存很大,就称为重量级对象。SessionFactory存放了Hibernate配置信息,映射元数据信息等。是重量级对象。 

Session对象:
代表程序和数据库的会话。Session提供了操作数据库的各种方法。是轻量级对象。

        获取Session对象 :
        factory.openSession(): 获取新的Session实例。
        factory.getCurrentSession():采用该方法创建的Session会取出当前线程中的Session,底层使用ThreadLocal进行存取 

Transaction对象:

        封装了事务的操作。我们做增删改查等操作时,必须开启事务.
        因为session是线程不安全的,这样主要是为了线程安全。保证数据的正确性。
        开启事务: Transaction ts=session.beginTransaction();
        提交事务:ts.commit();
        回滚事务:ts.rollback();
        当通过getCurrentSession获取当前线程绑定的Session时,事务关闭时,会自动把Session关闭并删除。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值