Java学习之Hibernate框架使用

Java学习之Hibernate框架使用0x00前言以我看来Hibernate的使用频率其实还是比较可观的,但都说Hibernate比较笨重,这里来学习一波,做个简单记录。0x01使用流程

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Java学习之Hibernate框架使用

0x00 前言

以我看来Hibernate的使用频率其实还是比较可观的,但都说Hibernate比较笨重,这里来学习一波,做个 简单记录。

0x01 使用流程

流程

1、导⼊相关依赖
2、创建 Hibernate 配置⽂件
3、创建实体类
4、创建实体类-关系映射⽂件
5、调⽤ Hibernate API 完成操作

具体操作

<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.10.Final</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
</dependencies>
  1. 配置hibernate.cfg.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 数据源配置 -->
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property
name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test?
useUnicode=true&amp;characterEncoding=UTF-8</property>
<!-- C3P0 -->
<property name="hibernate.c3p0.acquire_increment">10</property>
<property name="hibernate.c3p0.idle_test_period">10000</property>
<property name="hibernate.c3p0.timeout">5000</property>
<property name="hibernate.c3p0.max_size">30</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- 数据库⽅⾔ -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 打印SQL -->
<property name="show_sql">true</property>
<!-- 格式化SQL -->
<property name="format_sql">true</property>
<!-- 是否⾃动⽣成数据库 -->
<property name="hibernate.hbm2ddl.auto"></property>
</session-factory>
</hibernate-configuration>

核⼼配置: session-factory
SessionFactory:针对单个数据库映射经过编译的内存镜像⽂件,将数据库转换为⼀个 Java 可以识别的
镜像⽂件。

构建 SessionFactory ⾮常耗费资源,所以通常⼀个⼯程只需要创建⼀个 SessionFactory 。

  1. 创建实体类
import lombok.Data;
import java.util.Set;
@Data
public class Customer {
private Integer id;
private String name;
private Set<Orders> orders;
}
import lombok.Data;
@Data
public class Orders {
private Integer id;
private String name;
private Customer customer;
}
  1. 创建实体关系映射⽂件
import lombok.Data;
@Data
public class People {
private Integer id;
private String name;
private Double money;
}
<?xml version="1.0"?>5、实体关系映射⽂件注册到 Hibernate 的配置⽂件中。
6、使⽤ Hibernate API 完成数据操作。
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.southwind.entity.People" table="people">
<id name="id" type="java.lang.Integer">
<column name="id"></column>
<generator class="identity"></generator>
</id>
<property name="name" type="java.lang.String">
<column name="name"></column>
</property>
<property name="money" type="java.lang.Double">
<column name="money"></column>
</property>
</class>
</hibernate-mapping>
  1. 实体关系映射⽂件注册到 Hibernate 的配置⽂件中。
<mapping resource="com/nice0e3/entity/People.hbm.xml"></mapping>
  1. 使⽤ Hibernate API 完成数据操作
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Test {
public static void main(String[] args) {
//创建Configuration
Configuration configuration = new
Configuration().configure("hibernate.xml");
//获取SessionFactory
SessionFactory sessionFactory = configuration.buildSessionFactory();
//获取Session
Session session = sessionFactory.openSession();
People people = new People();
    people.setName("张三");
people.setMoney(1000.0);
session.save(people);
session.beginTransaction().commit();
session.close();
}
}

配置到映射文件配置到src目录下会读取不到。想要读取到需要在pom.xml下进行配置。

  1. pom.xml 中需要配置 resource。
<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>

0x02 结尾

Hibernate并不是本次主要目的,这里用于做简单记录。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119872.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java线程池参数_java线程池参数设置原则,如何设置线程池参数比较合理?[通俗易懂]

    java线程池参数_java线程池参数设置原则,如何设置线程池参数比较合理?[通俗易懂]线程池的参数应该怎样设置呢?相信对于很多的人来说这也是一个比较难的问题,下面就让我们一起来解决一下,究竟应该如何设置线程池的参数才是最合理的吧!首先在设置参数的时候,有以下的几点是我们需要考虑到的!1、下游系统抗并发的能力多线程给下游系统造成的并发等于你设置的线程数例:假如,是多线程访问数据库,那么就得考虑数据库的连接池大小设置,数据库并发太多影响其qps,会将数据库打挂等问题。假如,是访问下游系…

    2022年5月3日
    49
  • pycharm创建第一个程序_python创建新文件

    pycharm创建第一个程序_python创建新文件打开PyCharm,点击“CreateNewProject”。配置项目路径和python环境,配置完成后点击“Create”。项目创建成功!在项目名HelloWorld上点击右键,选择“New”-“PythonFile”,新建一个python文件,填写文件名。创建成功,写第一个python程序“HelloWorld”,写好后保存、运行。运行效果如下:至此第一个p…

    2022年8月29日
    2
  • FindWindow使用方法

    FindWindow使用方法

    2021年12月6日
    75
  • centos7安装python3.7_python软件安装步骤

    centos7安装python3.7_python软件安装步骤Centos7安装Python3.8详细教程Centos7安装Python3.8详细教程安装编译相关工具下载python安装包编译安装python创建软连接更改yum配置Centos7安装Python3.8详细教程安装编译相关工具yum-ygroupinstall”Developmenttools”yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-d

    2022年9月24日
    1
  • JY02调试-无刷电机驱动芯片[通俗易懂]

    JY02调试-无刷电机驱动芯片[通俗易懂]JY02是国内研制的无刷电机驱动芯片,相比于之前的DRV11873,少了集成的MOSFET,只能通过外部扩展MOSFET驱动芯片和功率管达到功率输出的目的,虽然在电路设计上增加了复杂度,但可以极大的提高电机驱动的输出功率,由于使用了外部的MOSFET,输出功率基本由功率MOSFET的驱动能力决定。JY02是硬件应用,不需要编写驱动固件,内部集成反电动势检测电路,支持’Y’形和三角形电机,支持过流检…

    2022年4月19日
    219
  • 团队作战和单兵作战

    团队作战和单兵作战

    2021年7月28日
    150

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号