hibernate入门——hibernateapi详解(代码片段)

deepsleeping deepsleeping     2023-01-07     189

关键词:

Hibernate API 详解

1.Configuration

 功能:配置加载类,用于加载主配置,orm元数据加载

   .创建:

 Configuration conf = new  Configuration();

   读取指定配置文件(加载主配置文件,即我们经常创建的"hibernate.cfg.xml")  

    从下图中可以发现有很多关于读取方法的重载。。。

    虽然有这么多重载,但是一般咱就用无参构造方法把,默认找到src下的hibernate.cfg.xml文件

    

 conf.configure();

  当然可以在创建Configuration对象的时候直接执行:

  

Configuration conf = new  Configuration().configure();

 技术分享图片

    它们的源码如下:

 技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

2.SessionFactory

  功能:用于创建数据库核心对象session对象的工厂,简单的说,功能就只有一个-------------------创建session对象

    注意:

      1.sessionFactory负责保存和使用所有配置信息,消耗内存非常大

      2.sessionFactory属于线程安全的对象设计(不同的用户对应不同的session)

    结论:保证在web项目中,只创建一个sessionFactory

 读取完主配置文件(hibernate.cfg.xml)后自然要拿到SessionFactory    

SessionFactory sf = conf.buildSessionFactory();

 

3.session对象

  创建:

   ①:一个新的session对象

Session session = sf.openSession();

  ②:获得一个与线程绑定的session对象

Session cSession = sf.getCurrentSession();

      ①插入

        注意:

          增删改查操作之前要开启事务,结束后要提交事务

          最后要session释放资源(后面的操作我就不完整写了)

        拿到对象,直接用save方法就行了

        Transaction tx = session.beginTransaction();
        Customer customer = new Customer();
        customer.setCust_id(2);
     customer.setCust_name("测试"); session.save(customer); tx.commit();
    session.close();

      ②根据主键查询 

Customer customer = session.get(Customer.class, 2);

      ③修改

      拿到对象然后调用update方法()

Customer customer = session.get(Customer.class, 2);
customer.setCust_name("测试2");
session.update(customer);

      发现一个"插入或者修改" 技术分享图片

 

      ④删除

       首先拿到对象,然后调用delete()

Customer customer = session.get(Customer.class, 2);
session.delete(customer);

 

4.自定义Hibernate工具类

   对于SessionFactory,提到最好只创建一个,其次就是封装重复代码,提高代码的复用性 

package deep.utils;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 * Hibernate工具类
 * @author DeepSleeping
 *
 */
public class HibernateUtils 

    private static SessionFactory sessionFactory;
    
    static
        Configuration conf = new Configuration().configure();
        sessionFactory = conf.buildSessionFactory();
        
    
    
    public static Session getSession()
        return  sessionFactory.openSession();
    
    
    public static Session getCurrentSession()
        return sessionFactory.getCurrentSession();
    

 

 

  

  




hibernate初探之单表映射——通过hibernateapi编写访问数据库的代码

编写一个Hibernate例子第五步:通过HibernateAPI编写访问数据库的代码初始化方法要实现以下功能:  查看详情

hibernateapi详解

一、Configuration类用来加载默认文件路径下的配置文件(hibernate.properties)。调用configure()方法会加载默认文件路径下的xml格式的配置文件(hibernate.cfg.xml)推荐使用。如果配置文件在不默认文件路径下或者配置文件名不符合默认规则... 查看详情

hibernate(十四篇)

...理 (三)Hibernate对象-关系映射文件  (四)HibernateAPI详解   (五)Hibernate一级缓存 (六)Hibernate的二级缓存 (七)HibernateJava对象持久化层的状态 (八 查看详情

hibernate学习笔记(代码片段)

...⽂件3、创建实体类4、创建实体类-关系映射⽂件5、调⽤HibernateAPI完成操作1.一对一关系 具体操作1、创 查看详情

hibernate学习笔记(代码片段)

...⽂件3、创建实体类4、创建实体类-关系映射⽂件5、调⽤HibernateAPI完成操作1.一对一关系 具体操作1、创 查看详情

java学习之hibernate框架使用

...⽂件3、创建实体类4、创建实体类-关系映射⽂件5、调⽤HibernateAPI完成操作具体操作<dependencies><dependency 查看详情

Spring+Hibernate,Autowire sessionFactory 到 hibernate DAO

...:2011-05-0622:27:39【问题描述】:我有一个HibernateDAO,根据HibernateAPI3和Spring3.x,我只使用了sessionFactory和不是Hibernat 查看详情

JPA/Hibernate 类型安全删除查询

...CriteriaQuery示例是针对SELECT查询的。有没有办法使用JPA2或HibernateAPI构建类型安全的DELETE查询?【问题讨论】:【参考方案1】:我认为这是不可能的。引用自http://blogs.oracle.com 查看详情

03-hibernate的入门

Hibernate的入门:第一步:下载Hibernate的开发包:http://sourceforge.net/projects/hibernate/files/hibernate3 第二步:Hibernate框架目录结构:documentation   :Hibernate文档lib  :Hibernate开发jar包*bytecode 查看详情

hibernate入门

Hibernate概述   优缺点   与Mybatis比较  配置Hibernate框架   下载并部署jar文件   编写Hibernate配置文件    添加本地dtd文件映射(提供编码提示,可添加configuration和mapping)    <!DOCTYPEhibernate-configurationP... 查看详情

hibernate入门程序

在第一个Hibernate入门示例程序中,我们将使用eclipseIDE创建一个简单的hibernate应用程序示例。要在EclipseIDE中创建第一个hibernate应用程序,需要遵循以下步骤:重要提示:按照惯例,易百教程的每个入门教程程序都会详细介绍对应... 查看详情

hibernate入门

Hibernate入门:执行增,删,改,查操作1.我们在新建项目之后需要导入相应的jar包2.我们需要在src目录下新建一个xml文件,名为hibernate.cfg.xml(大配置文件) <?xmlversion=‘1.0‘encoding=‘utf-8‘?><!DOCTYPEhibernate-configurationPUBLI... 查看详情

hibernate_基本配置和初始化步骤

...te配置文件2)创建持久化类3)创建对象-关系映射4)通过hibernateapi编写访问数据库的代码 2.eclipse导入jar包:偏好设置->java->buildpath->userlibraries->new新建library并导入jar包->configbuildpath->addlib 查看详情

spring整合hibernate4:事务管理

...icode.com/info-detail-110033.html Spring和Hibernate整合后,通过HibernateAPI进行数据库操作时发现每次都要opensession,close,beginTransaction,commit,这些都是重复的工作,我们可以把事务管理部分交给spring框架完成。 配置事务(xml方式... 查看详情

hibernate入门简介----张冬

简单的Hibernate入门简介转自:http://blog.csdn.net/doodoofish/article/details/43207其实Hibernate本身是个独立的框架,它不需要任何webserver或applicationserver的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,... 查看详情

Hibernate Envers - 在启动时填写审计表

...。在启动时,我必须从SQL脚本加载大量数据(而不是使用HibernateAPI!)。毕竟我看不到审计表中跟踪的任 查看详情

hibernate4入门

---初始化数据importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.cfg.Configuration;p 查看详情

hibernate的入门:

1下载Hibernate5http://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/hibernate-release-5.0.7.Final.zip/download项目目录:2创建表1Createdatabasehibernate_day01;2Usehibernate_day01;3CREATETABL 查看详情