创建Hibernate项目与实现一个例子(idea版)

news/2024/5/18 13:06:34/文章来源:https://blog.csdn.net/ccb1372098/article/details/128158287

文章目录

    • 创建Hibernate项目
      • 一、前提准备
      • 二、创建项目
      • 三、实现一个例子

创建Hibernate项目

一、前提准备

  1. 准备Hibernate开发必需的jar包。
  2. 准备数据库的驱动jar包。
  3. 准备junit.jar包。

这些包你可以去官网下载,也可以下载我已下载好的(本人目前使用的)。
https://pan.baidu.com/s/1DlnXJMLrBFf44dZ_kv8rXA?pwd=ccb1

二、创建项目

在这里插入图片描述
在这里插入图片描述

这里是创建项目路径和名称,可自己选择。

在这里插入图片描述

创建一个叫lib的文件夹,这里面存放需要导入的jar包

在这里插入图片描述

1. 导入Hibernate开发必需的jar包。
2. 导入数据库的驱动jar包。
3. 导入junit.jar包。

Hibernate的jar包在lib文件夹下的required文件夹里面,全部复制过来即可。
如何导入?
在需要导入文件夹里面找到jar包,复制这些jar包,然后点击paste即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击ok后,项目就创建完成了。

三、实现一个例子

以添加用户信息为例

1、先创建数据库(具体创建过程,不再展出)

我创建的数据库名为javaee,表名为person
在这里插入图片描述

2、先创建了一个包,然后再创建一个Person类
在这里插入图片描述
在这里插入图片描述

package com.ccb;public class Person {private Integer id;private String name;private String sex;private int age;public  Person(){}public Person(String name,String sex,int age){this.age=age;this.name=name;this.sex=sex;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

3、在含有Person类的包下创建Person.hbm.xml(必须是同一个包下)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把下面代码复制过去,

<?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><!-- name:类的全路径:--><!-- table:表的名称:(可以省略的.使用类的名称作为表名.)--><class name="com.ccb.Person" table="PERSON" ><!-- 主键--><id name="id" type="java.lang.Integer"><column name="id"></column><!--主键生成策略--><generator class="native"></generator></id><!--表内表头名和属性property里面的name是Person类里面的属性名column里面的name是表头里面的表头名type是Person属性的类型--><property name="name" type="java.lang.String"><column name="name"></column></property><property name="sex" type="java.lang.String"><column name="sex"></column></property><property name="age" type="int"><column name="age"></column></property></class>
</hibernate-mapping>

4、在src下创建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><!--使用 Hibernate 自带的连接池配置这里的javaee是我的数据库名字,需要换成你的数据库名字数据库账号,密码,都需要换成你的--><property name="connection.url">jdbc:mysql:///javaee</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">123456</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><!--hibernate 方言--><property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property><!--打印sql语句--><property name="hibernate.show_sql">true</property><!--格式化sql--><property name="hibernate.format_sql">true</property><!-- 加载映射文件就是刚刚创建的Person.hbm.xml,需要全路径--><mapping resource="com/ccb/Person.hbm.xml"/></session-factory>
</hibernate-configuration>

5、创建主类

package com.ccb;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;import java.util.Scanner;public class main1 {public static void main(String[] args) {Scanner cin=new Scanner(System.in);SessionFactory sessionFactory=null;Session session=null;Transaction transaction=null;//读取配置文件,并创建sessionFactory对象Configuration configuration=new Configuration().configure();ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();sessionFactory=configuration.buildSessionFactory(serviceRegistry);session=sessionFactory.openSession();System.out.println("请依次输入:姓名 性别 年龄");String name=cin.next();String sex=cin.next();int age=cin.nextInt();Person person=new Person(name,sex,age);transaction=session.beginTransaction();  //启动事务session.save(person);    //执行事务,保存对象transaction.commit();    //提交事务session.close();sessionFactory.close();cin.close();}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_229618.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring-Cloud-Zipkin-05

前言 1、链路追踪由来&#xff1a;在微服务框架中&#xff0c;一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果&#xff0c;每一个请求都会开成一条复杂的分布式服务调用链路&#xff0c;链路中的任何一环出现高延时或错误都会引导起…

【博客550】k8s乐观锁机制:控制并发请求与数据一致性

k8s乐观锁机制&#xff1a;控制并发请求与数据一致性 1、乐观锁与悲观锁 悲观锁 悲观并发控制&#xff08;又名“悲观锁”&#xff0c;Pessimistic Concurrency Control&#xff0c;缩写“PCC”&#xff09;是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修…

分布滞后线性和非线性模型(DLNM)分析空气污染(臭氧)、温度对死亡率时间序列数据的影响...

全文下载链接 http://tecdat.cn/?p23947 分布滞后非线性模型&#xff08;DLNM&#xff09;表示一个建模框架&#xff0c;可以灵活地描述在时间序列数据中显示潜在非线性和滞后影响的关联。该方法论基于交叉基的定义&#xff0c;交叉基是由两组基础函数的组合表示的二维函数空间…

【STM32学习(1)】详解STM32时钟体系

一、8051和stm32时钟体系结构区别 HSE&#xff1a;外部高速的振荡时钟&#xff08;8MHZ&#xff09; HSI&#xff1a;内部高速的振荡时钟&#xff08;16MHZ&#xff09; LSI&#xff1a;内部低速的振荡时钟&#xff08;32KHZ&#xff09; LSK&#xff1a;外部低速的振荡时钟&a…

开发一个简单的http模板之序章

流程 1.当通过开发HTTP模块来实现产品功能时&#xff0c;是可以完全享用Nginx的优秀设计所带来的、 与官方模块相同的高并发特性的。不过&#xff0c;如何开发一个充满异步调用、无阻塞的HTTP模块 呢2. 需要把程序嵌入到Nginx中&#xff0c;也就是说&#xff0c;最终编译出的二…

C++——隐式类型转换

隐式类型转换&#xff08;构造函数的隐式调用&#xff09; 先看一下隐式类型转换如何发生吧&#xff1a; #include <iostream> using namespace std;class point {public:int x,y;point(int x0, int y0):x(x),y(y) {} }void displayPoint(const point &p) {cout &l…

Clock and Jitter

1、Jitter定义 定义1&#xff08;SONET规范&#xff09;&#xff1a;抖动可以定义为数字信号在重要时点上偏离理想时间位置的短期变化。 2、Total Jitter表征方式 2.1、周期抖动&#xff08;Period Jitter&#xff09;&#xff0c;与理想时钟无关&#xff0c;不累积 Period …

(AVL)平衡二叉树

还是照旧&#xff0c;本篇主要讲一下代码实现&#xff0c;AVL相关的定义什么的这里不多赘述。 AVL树就是为了解决bst树出现了“线性”的问题&#xff0c;而发明的。什么是线性的就是一棵bst树全都只有左子树或者全都只有右子树&#xff0c;能想象来吧。 目录 LL型调整(左旋) …

axios.defaults.baseURL的三种配置方法

axios.defaults.baseURL的三种配置方法目录概述需求&#xff1a;设计思路实现思路分析1.少2.2.动态获取请求地址3.3.采用配置文件参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,m…

Spring学习:二、Bean的管理

4. Bean的管理 ​ Spring的基本Bean管理包括Bean配置&#xff0c;Bean实例化和Bean的依赖注入。这些管理可以通过手工编码的方式把每个Bean注册到容器中&#xff0c;也可以通过properties文件和xml文件配置Bean和Bean之间的依赖关系。通常我们的配置方式是XML作为配置文件。 …

DNS查询流程

&#x1f468;‍&#x1f4bb;个人主页&#xff1a; 才疏学浅的木子 &#x1f647;‍♂️ 本人也在学习阶段如若发现问题&#xff0c;请告知非常感谢 &#x1f647;‍♂️ &#x1f4d2; 本文来自专栏&#xff1a; 计算机网络 ❤️ 支持我&#xff1a;&#x1f44d;点赞 &#…

李宏毅《DLHLP》学习笔记6 - 语言模型

视频链接&#xff1a;https://www.youtube.com/watch?vdymfkWtVUdo&listPLJV_el3uVTsO07RpBYFsXg-bN5Lu0nhdG&index8&ab_channelHung-yiLee 课件链接&#xff1a;https://speech.ee.ntu.edu.tw/~tlkagk/courses/DLHLP20/ASR3.pdf 1. Language Model LM的作用是预…

FFmpeg二次开发

本文主要讲解 FFmpeg 的二次开发&#xff0c;ffmpeg.exe 的命令行功能特别强大&#xff0c;很多需求都能直接用命令行实现&#xff0c;但是总有一些需求用 命令行实现不太好做。 而你实现那些特殊需求&#xff0c;通常需要把 ffmpeg.exe 里面的某部分代码抄过来&#xff0c;本…

阿里云新用户活动:云服务器ECS 新购、升级报价出炉了!

阿里云新人特惠&#xff0c;阿里云新用户新购升级立享满减&#xff0c;新购升级云服务器ECS &#xff0c;购买热门产品 s6/u1/c6/g6/r6/c7/g7/r7指定配置&#xff0c;可享折上折&#xff01;从未购买过云服务器ECS或者轻量应用服务器的用户一次性可领取3张优惠券。优惠券适用于…

VS Code快速实现Git PR操作

注意&#xff1a;建议先学习git的基本操作。 安装插件 下图中红圈标记的插件都安装好。 Fork上游仓库 在网页上点击你想要fork的仓库&#xff0c;点击fork 然后该仓库就会fork到你的github账户下面&#xff0c;如下图。 现在可以在你账户下面的repo&#xff08;我们称为下…

Allegro如何移动器件操作指导

Allegro如何移动器件操作指导 Allegro上可以任意移动器件,具体操作如下 选择Edit-move Find选择Symbols Point根据需要选择 Sym Origin是抓取器件的原点 Body center是抓取器件的中心 User Pick可以自定义抓取的原点,在移动整个模块的并且旋转的时候常用的命令 Sym Pin#设…

【抓包工具】win 10 / win 11:WireShark 下载、安装、使用

目录 一、WireShark 下载 二、WireShark 安装 &#xff08;1&#xff09;双击运行安装程序 &#xff08;2&#xff09;Choose Components&#xff1a;选择组件 &#xff08;3&#xff09;Additional Tasks&#xff1a;附加任务 &#xff08;4&#xff09;Choose lnstall …

Pikachu靶场全关攻略(超详细!)

一、靶场搭建 准备工具 phpstudy**pikachu靶场下载地址&#xff1a;**https://github.com/zhuifengshaonianhanlu/pikachu 搭建过程 将靶场文件夹放到phpstudy的www目录 进入pikach文件夹的inc目录&#xff0c;修改靶场配置文件config.inc.php&#xff0c;设置数据库账号密…

微服务框架 SpringCloud微服务架构 10 使用Docker 10.6 容器命令练习

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构10 使用Docker10.6 容器命令练习10.6.1 直接开干10 使用Docker 10.6 容器…

Stable Diffusion 2.0 来了

Stable Diffusion 一经发布&#xff0c;就立刻在业界掀起巨大的波浪。我个人后知后觉&#xff0c;直到 Stable Diffusion V1.4 版本发布&#xff0c;才接触 Stable Diffusion (之前使用的是 Disco Diffusion)。这段时间&#xff0c;SD 团队也没闲着&#xff0c;很快就发布了 V2…