设为首页 加入收藏

TOP

hibernate入门(一)
2023-08-26 21:11:19 】 浏览:64
Tags:hibernate 入门

Hibernate 是一个开源的 ORM(对象关系映射)框架,它可以将 Java 对象与数据库表进行映射,从而实现面向对象的数据持久化。使用 Hibernate,可以避免手动编写 SQL 语句,从而提高开发效率,并且可以轻松地切换不同的数据库。

基础概念

entity 实体类是映射到数据库表中的 Java 类,它包含了与数据库表中列相对应的属性,并且可以使用注解或 XML 文件进行映射。
MySql table 关系型数据库中的表格

hibernate负责互相转换两者。将entity存入数据库,将数据库中的数据取出并创建实体类的实例提使用者。

依赖

<dependencies>
  <!-- hibernate 核心 -->
  <dependency>
      <groupId>org.hibernate.orm</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>6.2.7.Final</version>
  </dependency>

  <!--  jdbc 实现 -->
  <dependency>
      <groupId>com.mysql</groupId>
      <artifactId>mysql-connector-j</artifactId>
      <version>8.0.33</version>
  </dependency>
</dependencies>

配置类

maven项目将配置文件hibernate.cfg.xml放置再resource目录下即可

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <!-- 会话工厂 -->
    <session-factory>
        <!-- 链接参数 -->
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jpa_study?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=Asia/Shanghai</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">a1b2c3</property>

        <!-- 显示sql语句 -->
        <property name="show_sql">true</property>
        <!-- 格式化sql -->
        <property name="format_sql">true</property>
        <!-- sql方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 自动操作:创建-删除 -->
        <property name="hibernate.hbm2ddl.auto">create-drop</property>
        <!-- 配置sessionFactory.getCurrentSession()的上下文 -->
        <property name="current_session_context_class">thread</property>

        <mapping class="org.example.entity.User"/>
    </session-factory>
</hibernate-configuration>

工具类

package org.example.util;

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

import java.util.function.Consumer;
import java.util.function.Function;

public class SessionFactoryUtil {

    private static final SessionFactory sessionFactory;

    static {
        // 构建会话工厂(configure未指定参数默认查找classpath:hibernate.cfg.xml)
        sessionFactory = new Configuration().configure().buildSessionFactory();
    }

    /**
     * 执行sql操作
     * @param callback 回调函数
     */
    public static void execute(Consumer<Session> callback) {
        Session session = sessionFactory.getCurrentSession();
        Transaction transaction = session.beginTransaction();
        try {
            callback.accept(session);
        } catch (Exception e) {
            transaction.rollback();
            e.printStackTrace();
        }
        transacti
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇由put方法深入了解HashMap 下一篇SpringBoot3文件管理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目