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

news2024/11/15 4:09:23

文章目录

    • 创建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.coloradmin.cn/o/57573.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习】评价指标 : 准确率,查准率与查全率

引言 在机器学习中&#xff0c;有几个评价指标&#xff0c;今天专门来介绍一下。之前的学习中主要是看模型&#xff0c;学算法&#xff0c;突然有一天发现&#xff0c;机器学习中的一些基本概念还是有点模糊&#xff0c;导致不知道如何综合评价模型的好坏。 这篇文章主要介绍如…

HTML5期末考核大作业:基于Html+Css+javascript的网页制作(化妆品公司网站制作)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

【强化学习论文合集 | 2018年合集】一. ICML-2018 强化学习论文

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

我的数学学习回忆录——一个数学爱好者的反思(二)

早点关注我&#xff0c;精彩不错过&#xff01;上回说到我在数学学习过程中走的种种弯路&#xff0c;相关内容请戳&#xff1a;我的数学学习回忆录——一个数学爱好者的反思&#xff08;一&#xff09;那在这样坎坷的旅程中&#xff0c;有没有给我带来意外惊喜&#xff0c;是不…

C++中的类型转换

文章目录一、隐式类型转换二、显式类型转换三、c风格的类型转换一、隐式类型转换 隐式类型转换&#xff0c;顾名思义&#xff0c;就是没有明显的声明要进行类型转换&#xff0c;隐式类型转换有可能造成数据精度的丢失&#xff0c;所以通常所做的类型转换都是从size小的数据到si…

哈夫曼编码(Huffman coding)

哈夫曼编码哈夫曼编码简介发展历史思想示例不足哈夫曼编码 简介 哈夫曼编码(Huffman Coding)&#xff0c;又称霍夫曼编码&#xff0c;是一种编码方式&#xff0c;哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法&#xff0c;该方法完全依据字符出现概…

[附源码]JAVA毕业设计计算机在线学习管理系统-(系统+LW)

[附源码]JAVA毕业设计计算机在线学习管理系统-&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项…

实现自定义Spring Boot Starter

实现自定义Spring Boot Starter一、原理二、实战1 自定义 Spring Boot Starter1.1 添加maven依赖1.2 属性类AuthorProperties1.3 自动配置类AuthorAutoConfiguration1.4 业务逻辑AuthorServer1.5 spring.factories2 测试自定义的 Spring Boot Starter2.1 新建module或者新建工程…

什么软件能识别软件?学会这几个软件就可以了

在日常学习或工作中&#xff0c;我们经常会因为各种各样的原因&#xff0c;导致资料无法记全。比如上课的时候老师讲课速度过快、或者开会时需要整理的资料太多&#xff0c;我们做不到一心二用&#xff0c;边听边记。你们遇到类似情况的时候&#xff0c;都是怎么解决的呢&#…

0x02. Spring Boot 3 之SpringBoot 版本升级最佳实践指南

Spring Boot 3 之SpringBoot低版本升级最佳实践0x01 前言0x02 升级Spring Boot2.1 从Spring Boot 1.5.x 升级到Spring Boot 2.x2.1.1 依赖检查2.1.2 检查自定义配置2.1.3 检查系统需要2.1.4 升级到Spring Boot 2.x2.1.5 配置属性迁移2.2 从Spring Boot 2.7.x 升级到Spring Boot…

概率统计·样本及抽样分布【随机样本、抽样分布】

总体与个体 总体&#xff1a;试验的全部可能的观察值称为总体 个体&#xff1a;总体中每个可能的观察值称为个体 总体期望样本平均期望 总体方差/n样本平均方差 随机样本 X1&#xff0c;X2……Xn相互独立&#xff08;x1&#xff0c;x2……xn是观察值&#xff09;&#xff0…

[附源码]计算机毕业设计springboot疫苗及注射管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

STC 51单片机52——自发自收串行通信

#include <reg52.h> unsigned char ch0; /* 初始化函数 */ void uart_init() { TMOD0x20; //T1为方式2 TL10xfd; TH10xfd; //波特率为9600的计数初值 SCON0x50; //串口工作在方式1。允许接收 …

[附源码]Python计算机毕业设计Django基于Java的日用品在线电商平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

五问补盲(一) | 激光雷达补盲,视场多大算大?

作者 | 爱LiDAR的小飞哥 编辑 | 王博“大&#xff01;超大&#xff01;更大&#xff01;” 最近&#xff0c;补盲激光雷达市场热闹非凡&#xff0c;各家在宣传产品的视场角时竭尽全力&#xff0c;毫不吝啬形容词。 回归到实际需求&#xff0c;多大的视场角够用&#xff1f;超大…

西门子触摸屏上电显示初始画面几秒后,自动切换到下一个画面的具体方法

西门子触摸屏上电显示初始画面几秒后,自动切换到下一个画面的具体方法 例如:在启动画面停留10秒后,切换到其他画面。 具体实现方法可参考以下内容: 如下图所示,新建一个项目,在画面中添加2个画面, 如下图所示,在变量中添加一个内部变量tag1,用于控制画面的切换, …

es查询响应结果中获取某些字段的值

有时候使用es查询出的结果包含多个字段&#xff0c;如果数据中仅仅包含几个字段时&#xff0c;我们是很容易挑出自己需要的字段值&#xff0c;但是如果数据中包含几十或者几百甚至更多时&#xff0c;尤其是数据中嵌套好多层时&#xff0c;不容易直接挑取出需要的值&#xff0c;…

【人工智能/算法】搜索求解(Solving Problems by Searching)

文章目录一、求解与搜索二、盲目式搜索1. 深度优先搜索&#xff08;Depth First Search, DFS&#xff09;回溯搜索&#xff08;Backtracking Search&#xff09;2. 广度优先搜索&#xff08;Breadth First Search, BFS&#xff09;一致代价搜索&#xff08;Uniform-cost Search…

你们看过《点燃我,温暖你》没有呀,里面比较火的那个爱心代码,今天小编用Python实现啦,这就是程序员的烂漫吗

前言 包子们&#xff0c;上午好 最近有个剧挺火的 就是那个程序员的剧&#xff0c;叫《点燃我&#xff0c;温暖你》 最近听说很火呀&#xff0c;那作为程序员&#xff0c;Python中的战斗机的小编&#xff0c;能不给大家安排一波&#xff01; 怎么说呢&#xff0c;用这个表白也…

DJ13-1 汇编语言程序设计-1

目录 一、基本概念 1. 机器语言&#xff08;machine language&#xff09; 2. 汇编语言&#xff08;assembly language&#xff09; 3. 汇编语言源程序 4. 汇编&#xff08;assemble&#xff09; 5. 汇编程序&#xff08;assembler&#xff09; 6. 宏汇编程序&#xff0…