官网地址:

http://hibernate.org/orm/releases/5.4/

地址:

https://bintray.com/hibernate/artifacts/hibernate-orm

只需要一个坐标就搞好了

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-agroal</artifactId>
<version>5.4.21.Final</version>
<type>pom</type>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>

编写新闻实体类:

package cn.zeal4j.domain;

import java.util.Date;

/**
* @author Administrator
* @file Hibernate
* @create 2020 09 23 16:06
*/
public class News {
private Integer id;
private String title;
private String author;
private Date date; public News() {
} public News(Integer id, String title, String author, Date date) {
this.id = id;
this.title = title;
this.author = author;
this.date = date;
} @Override
public String toString() {
return "News{" +
"id=" + id +
", title='" + title + '\'' +
", author='" + author + '\'' +
", date=" + date +
'}';
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public String getAuthor() {
return author;
} public void setAuthor(String author) {
this.author = author;
} public Date getDate() {
return date;
} public void setDate(Date date) {
this.date = date;
}
}

编写Hibernate核心配置XML【hibernate.cfg.xml】

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 基本链接参数 -->
<property name="connection.url">jdbc:mysql://IP-Address:Port/hibernate?serverTimezone=Asia/Shanghai</property>
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.username">Username</property>
<property name="connection.password">Password</property> <property name="dialect">org.hibernate.dialect.MySQL57Dialect</property> <!-- 数据库版本方言 -->
<property name="show_sql">true</property> <!-- 是否让控制台输出SQL语句 -->
<property name="format_sql">true</property> <!-- 控制台输出的SQL格式化 -->
<property name="hbm2ddl.auto">update</property> <!-- 数据库表的生成策略 --> <mapping resource="hibernate/mapping/News.hbm.xml" /> <!-- 实体类映射XML路径 -->
</session-factory> </hibernate-configuration>

编写映射配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.zeal4j.domain" > <!-- 实体类包映射 --> <class name="News" table="news" > <!-- 实体类配置 -->
<id name="id" column="id" type="java.lang.Integer"> <!-- 主键与维护策略 -->
<generator class="increment" /> <!-- 发现官方提供的策略很严格,必须increment 其他的策略都会报错说 主键没有默认值 -->
<!--<generator class="assigned" />-->
<!--<generator class="native" />-->
</id>
<property name="title" column="title" type="java.lang.String" /> <!-- 类属性 表字段 java类型 -->
<property name="author" column="author" type="java.lang.String" />
<property name="date" column="date" type="java.util.Date" /> <!-- 默认的util包的Date即可,不要使用sql包的 -->
</class> </hibernate-mapping>

测试运行:

package cn.zeal4j;
import cn.zeal4j.domain.News;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.junit.Test;
import java.io.Serializable;
import java.util.Date; /**
* @author Administrator
* @file Hibernate
* @create 2020 09 23 16:16
*/
public class HibernateTest { @Test
public void quickStart() {
Transaction transaction = null;
Session session = null;
SessionFactory sessionFactory = null;
try {
// 但在5.1.0版本汇总,hibernate则采用如下新方式获取:
// 1. 配置类型安全的准服务注册类,这是当前应用的单例对象,不作修改,所以声明为final
// 在configure("cfg/hibernate.cfg.xml")方法中,如果不指定资源路径,默认在类路径下寻找名为hibernate.cfg.xml的文件
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure("hibernate/hibernate.cfg.xml").build(); // 2. 根据服务注册类创建一个元数据资源集,同时构建元数据并生成应用一般唯一的的session工厂
sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory(); /* - - - - - - - 上面是配置准备,下面开始我们的数据库操作 - - - - - - - */
session = sessionFactory.openSession(); //从会话工厂获取一个session transaction = session.beginTransaction(); News news = new News(null, "新闻标题:这是一段演示文本...", "作者:Zeal4J", new Date()); Serializable save = session.save(news); System.out.println("操作结果:" + save); transaction.commit(); } catch (Exception exception) {
exception.printStackTrace();
transaction.rollback();
} finally {
session.close();
sessionFactory.close();
}
}
}

输出的SQL语句:

Hibernate:
select
max(id)
from
news
操作结果:3
Hibernate:
insert
into
news
(title, author, date, id)
values
(?, ?, ?, ?)

【Hibernate】Re01 快速入门的更多相关文章

  1. Hibernate知识点小结(一)--快速入门

    一.Hibernate的简介    1.Hibernate是一个开放源代码的对象关系映射框架    2.对象关系映射:ORM  Object Relation Mapping        对象与数据 ...

  2. Hibernate第一篇【介绍Hibernate,简述ORM,快速入门】

    前言 前面已经学过了Struts2框架了,紧接着就是学习Hibernate框架了-本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门 什么是Hibernate框架? Hib ...

  3. (转)Hibernate快速入门

    http://blog.csdn.net/yerenyuan_pku/article/details/64209343 Hibernate框架介绍 什么是Hibernate 我们可以从度娘上摘抄这样有 ...

  4. Hibernate入门第一讲——Hibernate框架的快速入门

    Hibernate框架的概述 什么是框架? 框架指的是软件的半成品,已经完成了部分功能. JavaEE开发的三层架构 了解框架的基本概念之后,我们就来看看Hibernate框架处于JavaEE开发的经 ...

  5. PDF.NET SOD 开源框架红包派送活动 && 新手快速入门指引

    一.框架的由来  快速入门 有关框架的更多信息,请看框架官方主页! 本套框架的思想是借鉴Java平台的Hibernate 和 iBatis 而来,兼有ORM和SQL-MAP的特性,同时还参考了后来.N ...

  6. SpringMvc_快速入门,深入分析

    目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 ...

  7. Spring MVC 教程,快速入门,深入分析

    http://elf8848.iteye.com/blog/875830/ Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门  资源下载: ...

  8. Spring_MVC_教程_快速入门_深入分析

    Spring MVC 教程,快速入门,深入分析 博客分类: SPRING Spring MVC 教程快速入门  资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf Spring ...

  9. Gora快速入门

    概述 Gora是apache的一个开源项目. The Apache Gora open source framework provides an in-memory data model and pe ...

  10. Java Web快速入门——全十讲

    Java Web快速入门——全十讲 这是一次培训的讲义,就是我在给学生讲的过程中记录下来的,非常完整,原来发表在Blog上,我感觉这里的学生可能更需要. 内容比较长,你可以先收藏起来,慢慢看. 第一讲 ...

随机推荐

  1. 算法金 | 只需十四步:从零开始掌握Python机器学习(附资源)

    大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 1. 引言 1.1 教程目的与读者定位 "启程"往往是最具挑战性的 ...

  2. spring-boot-admin 监控

    监控单体应用 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spri ...

  3. 2020年你不可不知的自动化框架,可替代Selenuim的测试框架Top10

    Selenium是一种开源自动测试工具.它可以跨不同的浏览器和平台在Web应用程序上执行功能,回归,负载测试.Slenium是最好的工具之一,但确实有一些缺点. 业界有一些强大的工具可以替代Selen ...

  4. Ansible的常用模块

    目录 ansible常用模块 1. file模块 1.1 file模块的选项 1.2 file模块的使用 1.2.1 使用file模块在远程主机创建文件 1.2.2 创建目录 1.2.3 删除文件/目 ...

  5. C#如何创建一个可快速重复使用的项目模板

    写在前面 其实很多公司或者资深的开发都有自己快速创建项目的脚手架的,有的是魔改代码生成器实现,有的直接基于T4,RazorEngine等模板引擎打造:但无论如何,其最终目的其实就是搭建一个自定义项目模 ...

  6. 使用Microsoft.SemanticKernel基于本地运行的Ollama大语言模型实现Agent调用函数

    大语言模型的发展日新月异,记得在去年这个时候,函数调用还是gpt-4的专属.到今年本地运行的大模型无论是推理能力还是文本的输出质量都已经非常接近gpt-4了.而在去年gpt-4尚未发布函数调用时,智能 ...

  7. ARM 命名规则和ARM 版本

    结论:我们所接触到提到的命名规则,应该分成两类. 基于ARM Architecture版本的"指令集架构"命名规则:例如armv6, armv7, armv7s, arm64 等系 ...

  8. 在centos开启防火墙没启动22/tcp or 22/udp的情况下是如何ssh连上的

    偶尔间查询防火墙的22/tcp or 22/udp ,看到是no的状态,而且此时也是ssh登陆的,然后就反复尝试,关闭22端口,开启,重载,重启.甚至连上另个服务器发现还是一样的情况.在群里问大佬们终 ...

  9. RD/RT格式

    一.RD RD长度是8字节,包括Type和Value字段. Type字段:2字节 Value字段:6字节 Type字段的取值决定了Value字段的结构.每种类型的Value字段都由两个部分组成,分别是 ...

  10. Vue Element-UI 按需引入提示Cannot find module 'babel-preset-es2015'

    1.我的开发环境和操作步骤 1.1.使用VUE-CLI创建  2.x 脚手架 1.2.安装 npm i element-ui(参照官网) 1.3.安装 npm install babel-plugin ...