【Hibernate】03 配置文件 & API

2021-03-06 10:27

阅读:365

标签:div   调用   核心   let   turn   test   对象创建   mamicode   dai   

映射器文件:

- 字段的Column属性可以不写缺省,这将表示和实体类的属性标识一样

技术图片

 

- type 属性用于声明表字段在Java中的类型,这个属性可不写缺省,自动匹配

技术图片

 


 

Hibernate 4个核心API

Configuration 配置

// 创建配置对象
Configuration configuration = new Configuration();

// 调用配置方法,这个方法会直接去找hibernate.cfg.xml 不需要按名字注入配置
configuration.configure();

我们查看源码发现这个方法他就是这么写的

技术图片

所以为什么才要求我们Hibernate的核心配置文件必须是这个名称

 

或者使用这个重载方法,注入文件路径

/config/hibernate.cfg.xml

技术图片

 

SesionFactory 会话工厂

使用配置对象创建会话工厂

读取配置JDBC参数,和映射文件信息,在数据库中创建数据表或者更新

技术图片

创建SessionFactory的过程中是特别消耗资源的

最佳使用:

工厂实例有且仅有唯一一个实例,并一直存留围绕整个项目的运行器

不应该多次创建,所以即单例模式,写在静态代码块即可

 

编写Hibernate工具类

package cn.dai.util;

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

/**
 * @author ArkD42
 * @file Hibernate
 * @create 2020 - 05 - 10 - 11:18
 */
public class HibernateUtil {
    
    private HibernateUtil(){}
    
    private static SessionFactory sessionFactory;
    
    static {
        Configuration configuration = new Configuration();
        configuration.configure();
        sessionFactory = configuration.buildSessionFactory();
    }
    
    public static Session getSession(){
        return sessionFactory.openSession();
    }
}

 

Session SQL会话

实现数据库的CRUD操作

- 添加 SAVE

- 修改 UPDATE

- 删除 DELETE

查询是一个特殊的场景:

- 根据ID查询,GET

 

Session是一个单线程的对象,不能被公用!!!

最佳使用是在方法中,使用完毕立刻释放

下次使用再到工厂获取

 

Transaction

- 通过会话对象获取实例,开启事务 

Transaction transaction = session.beginTransaction();

不要等到执行SQL之后再开启事务,建议获取到会话实例之后立刻开启事务

- 提交事务

// 提交事物
transaction.commit();

- 如果失败,应该进行回滚处理

// 回滚事物
transaction.rollback();

使用工具类再简化的测试

    @Test
    public void letsGetThisWork2(){
        Session session = HibernateUtil.getSession();
        Transaction transaction = session.beginTransaction();
        session.save(new User(null,"阿伟","332244"));
        transaction.commit();
        session.close();
    }

 

【Hibernate】03 配置文件 & API

标签:div   调用   核心   let   turn   test   对象创建   mamicode   dai   

原文地址:https://www.cnblogs.com/mindzone/p/12862628.html


评论


亲,登录后才可以留言!