Hibernate学习之路(8) Hibernate注解

Java 中 Hibernate 的注解使用大全 Hibernate 是 Java 领域广泛使用的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式操作数据库,避免了直接编写大量的 SQL 语句。本文章的目的是全面介绍 Hibernate 注解的使用,涵盖从基本的实体映射到复杂的关联关系映射等各个方面。通过学习本文,读者将能够熟练使用 Hibernate 注解来完成实体类与数据库表之间的映射,实现数据的持久化操作。本文将按照以下结构进行组织:首先介绍 Hibernate 注解的核心概念和相关联系,包括注解的原理和架构; 阅读详情

修改hibernate.cfg.xml

<?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>
<!-- 
    配置SessionFactory
        SessionFactory用于创建Session对象
            Session对象就是hibernate中操作数据库的核心对象
        创建SessionFactory必须的三个部分
        第一部分:
            连接数据库的信息
        第二部分:
            hibernate的可选配置
        第三部分:
            映射文件的位置


 -->
    <session-factory>
        <!-- 第一部分:连接数据库的信息 -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=UTF-8 </property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">123456</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 可选配置 -->
            <!-- 显示sql语句 -->
        <property name="hibernate.show_sql">true</property>
            <!-- 格式化输出sql语句 -->
        <property name="hibernate.format_sql">true</property>
            <!-- 采用哪种方式生成DDL语句 
                update:表示检查实体类的映射配置和数据库的表结构是否一致,如果不一致,更新表结构
            -->
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!-- 把session和线程绑定,从而实现一个线程只有一个session -->
        <property name="hibernate.current_session_context_class">thread</property>

        <!-- 映射配置文件的位置 -->
        <!-- <mapping resource="entity/Customer.hbm.xml" />-->
        <!-- 现在不再映射配置文件,而是直接映射实体类 -->
        <mapping class="entity.Customer" />
    </session-factory>
</hibernate-configuration>

看这里
这里写图片描述

在实体类中加上注解
加上注解之后就不用写Customer.hbm.xml文件了

@Entity//表明该类是实体类,导入javax.persistence.Entity;
@Table(name="Customer")//建立实体类与表的关系
public class Customer {
    @Id//表明当前字段是主键
    @Column(name="custid")//表明对应数据库字段是custid
    @GeneratedValue(strategy=GenerationType.IDENTITY)//strategy:使用JPA提供的主键生成策略
    private int custid;

    @Column(name="custName")
    private String custName;

    @Column(name="custSource")
    private String custSource;

    @Column(name="custIndustry")
    private String custIndustry;

    @Column(name="custLevel")
    private String custLevel;

    @Column(name="custAddress")
    private String custAddress;

    @Column(name="custPhone")
    private String custPhone;

    public Customer(int custid, String custName) {
    super();
    this.custid = custid;
    this.custName = custName;
    }
    public Customer() {
    super();
    }
    public int getCustid() {
        return custid;
    }
    public void setCustid(int custid) {
        this.custid = custid;
    }
    public String getCustName() {
        return custName;
    }
    public void setCustName(String custName) {
        this.custName = custName;
    }
    public String getCustSource() {
        return custSource;
    }
    public void setCustSource(String custSource) {
        this.custSource = custSource;
    }
    public String getCustIndustry() {
        return custIndustry;
    }
    public void setCustIndustry(String custIndustry) {
        this.custIndustry = custIndustry;
    }
    public String getCustLevel() {
        return custLevel;
    }
    public void setCustLevel(String custLevel) {
        this.custLevel = custLevel;
    }
    public String getCustAddress() {
        return custAddress;
    }
    public void setCustAddress(String custAddress) {
        this.custAddress = custAddress;
    }
    public String getCustPhone() {
        return custPhone;
    }
    public void setCustPhone(String custPhone) {
        this.custPhone = custPhone;
    }
    @Override
    public String toString() {
    return "Customer [custid=" + custid + ", custName=" + custName
        + ", custSource=" + custSource + ", custIndustry="
        + custIndustry + ", custLevel=" + custLevel + ", custAddress="
        + custAddress + ", custPhone=" + custPhone + "]";
    }
Hibernate注解实战详解 本文还有配套的精品资源,点击获取 简介:Hibernate是一个开源的对象关系映射(ORM)框架,使用注解可以简化Java开发者与数据库的交互。文章将详细讲解Hibernate注解的基本概念、主键注解、数据库表注解、字段注解、关联注解以及注解配置的优点,并通过实例演示注解的使用,旨在帮助开发者提高数据库操作的效率和灵活性。 1. Hibernate注解基础概念 ... 阅读详情

相关推荐

Hibernate Annotation库

hibernate annotation库所需要引入的三个jar包。

Hibernate各个注解含义和使用讲解

一。实体Bean 每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用@Entity 注解来进行声明。 声明实体Bean @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; } } @Entity 注解将一个类声明为实体Bean, @...

洛阳泰山的博客 7266

Hibernate Annotation入门

NULL 博文链接:https://paladin1988.iteye.com/blog/1633258

hibernate annotation

** HIbernate注解说明 ** 1、@Entity(name="EntityName") 必须,name为可选,对应数据库中一的个表,此处的EntryName要注意,在代码中使用hql进行查询时,需要from Xxx,那么Xxx就是对应的此处的EntryName,所以要注意EntryName的命名,否则会出现映射问题。 2、@Table(name="",catalog=

hardly555的博客 293

hibernate _annotation 注解编程

hibernate annotation 注解编程 官网文档 hibernate annotation 注解编程 官网文档 hibernate annotation 注解编程 官网文档

5g LDPC编译码-LDPC编码

本文摘要:LDPC编码是5G业务信道的核心编码技术,属于线性分组码。5G中LDPC编码分为两种基图类型(BG1和BG2),通过码块分割、CRC处理等步骤实现。编码过程主要涉及校验矩阵生成和校验位计算,其中校验矩阵采用稀疏矩阵结构。文中详细介绍了5G LDPC编码的具体实现流程,包括码块分割规则、校验位生成方法,以及两种基图(BG1和BG2)在矩阵结构和参数设置上的差异,重点阐述了通过模块化方法求解校验比特位的技术路径。

weixin_38270585的博客 1365

Hibernate Annotations 注解

@Entity 声明当前是一个持久化类 @Table 设置当前持久化类所映射的数据库表,如果当前类中没有使用@Table注解,Hibernate会自动使用默认的持久化类的类名(不带包名)作为所映射的表名 @Id 设置当前持久化类的标示符属性 @GeneratedValue 设置当前标示符的生产策略。@Generated

oyzl68的专栏 9932

手把手教你搭建一个属于自己的网站-适合零基础小白,文末附网站模板

手把手教你搭建一个属于自己的网站-适合零基础小白写在前面搭建需求功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 写在前面 前段时间休息想着搭一个属于自己的网站,几经尝试终于成功了,网上其实有很多教程,但很多,希望这篇文章能够帮助到

qq_46788925的博客 1万+

Hibernate注解-annotation

Hibernate注解-annotation 文章目录Hibernate注解-annotation常用的注解注解编写的位置注解实现单表1、编写实体类2、编写主配置文件3、测试 在Hibernate中,通常配置对象关系映射的方式有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,俗话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,annotation的方式可以更简介,使...

ch19940812的博客 267

基于4G cat.1的低功耗车牌识别摄像头模组介绍

在消费类摄像头领域,4G低功耗相机已经非常普遍,在可视门锁,婴儿看护,户外监控等领域都获得了很好的应用.但是在工业领域,低功耗相机的应用还不是那么广泛.这里要介绍一款基于4G cat.1的低功耗车牌识别摄像头模组,在待机状态只有MCU和毫米波雷达以1Hz的频率工作,功耗低至500uA,并可以通过4G模块远程唤醒模组.

bindaz的专栏 1647

Android 11系统定制:如何彻底隐藏状态栏电池图标(RK3568实测)

本文详细解析了在Android 11系统上如何通过多维度修改实现状态栏电池图标的彻底隐藏,特别针对RK3568平台提供了实战指南。从系统UI架构解析到核心配置文件修改,再到进阶技巧与疑难排查,帮助开发者深度定制Android系统,满足特定场景需求。

weixin_29250573的博客 376

Hibernate Annotation (Hibernate 注解)

简介: 传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载。 然而现在借助新的 Hibernate Annotation 库,即可一次性地分配所有旧映射文件——一切都会按照您的想法来定义——注释直接嵌入到您的Java类中,并提供一种强大及灵活的方法来声明持久性映射。即利用hibernate注解后,可不用定义持...

weixin_30687811的博客 188

Keil5安装教程(保姆级)Keil5mdk安装步骤

6、复制生成的激活码,粘贴在New License ID Code处,点击Add LIC,即可成功激活mdk,显示mdk的使用期限。6、复制生成的激活码,粘贴在New License ID Code处,点击Add LIC,即可成功激活C51,显示mdk的使用期限;3、在安装文件中点击keygen.exe文件,粘贴复制过的CID,选择Target为C51,点击Generate,生成激活码;4、在弹出的界面中会自动安装在安装keil的路径,点击“Next”进行后续安装,安装完成后,点击“Finish”。

m6886258的博客 9万+

码农小汪-Hibernate学习8-hibernate关联关系注解表示@OneToMany mappedBy @ManyToMany @JoinTable

最近我也是有点郁闷,到底是程序中处理关联关系,还是直接使用外键处理关联关系呢?这个的说法不一致!程序中处理这种关联关系的话,自己去维护这种约束。这种很乐观的一种做法!或者是直接在数据库中处理这种直接的外键关联,悲观的做法!刚刚看到个帖子。有的公司表中一个外键都没得,直接在程序中处理这种关联关系。如果在Hibernate中处理外键关系的话。我们首先得有个主表的对象吧,然后在创建外键。感觉有点啰嗦,为啥

汪小哥 6087

冷源法测试噪声系数(Noise Figure)详细步骤

背景知识 电阻负载的功率谱密度 噪声等效模型 3 4 冷源法测试步骤 注意事项

eleday的电子世界 6871

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

码农小汪-Hibernate学习8-hibernate关联关系注解表示@OneToMany mappedBy @ManyToMany @JoinTable...

近期我也是有点郁闷,究竟是程序中处理关联关系。还是直接使用外键处理关联关系呢?这个的说法不一致!程序中处理这样的关联关系的话。自己去维护这样的约束。这样的非常乐观的一种做法!或者是直接在数据库中处理这样的直接的外键关联,悲观的做法!刚刚看到个帖子。有的公司表中一个外键都没得。直接在程序中处理这样的关联关系。假设在Hibernate中处理外键关系的话。我们首先得有个主表...

weixin_30868855的博客 139

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Struts2.3+Spring3.2.8+Hibernate4.1全注解配置

帮朋友搭建个简单的helloworld的平台,较简单,但是能用了。 给ssh的“零配置”一个正解。看我这个就够了ok了! jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/sshfw?useUnicode=true&amp;characterEncoding=utf-8&amp;zeroDateTimeBe...

weixin_44195108的博客 185

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Hibernate 框架学习——Hibernate注解

前言 在Hibernate中我们一般都会使用注解,这样可以帮助我们大大简化hbm映射文件的配置。下面我就来为大家详细介绍。 PO类注解配置 首先肯定是搭建好Hibernate的开发环境啦,我在此也不过多赘述,读者自行实践。接着在src目录下创建一个cn.itheima.domain包,并在该包下创建一个Book实体类,由于Book实体类中写有注解配置,所以就不用编写那个映射配置文件啦! ...

热心网友 8552

Hibernate注解开发

Hibernate注解开发在Hibernate中我们一般都会使用注解,这样可以帮助我们大大简化hbm映射文件的配置。下面我就来为大家详细介绍。PO类注解配置首先肯定是搭建好Hibernate的开发环境啦,我在此也不过多赘述,读者自行实践。接着在src目录下创建一个cn.itheima.domain包,并在该包下创建一个Book实体类,由于Book实体类中写有注解配置,所以就不用编写那个映射配置文件啦

李阿昀的博客 6140

35个Hibernate 注解:Hibernate架构设计与注解应用案例(必须收藏)

Hibernate 是 Java 持久化领域的核心框架,通过对象关系映射(ORM)技术,将 Java 对象与关系型数据库中的表相互映射。这种映射使得开发者能够使用面向对象的方法来处理数据,而不必编写复杂的 SQL 语句。Hibernate 提供了一系列注解,如 `@Entity` 用于标识实体类,`@Table` 用于指定实体与数据库表的映射,`@Id` 用于标记实体的主键字段,以及 `@Column` 用于定义实体属性与数据库表列的映射关系。 此外,`@ManyToOne`、`@OneToMany` 和

肖哥弹架构博客 1249

Hibernate 注解 annotation

Hibernate 注解 annotation 博客分类:  Hibernate HibernateBeanSQL嵌入式数据结构 一、 实体 Bean 每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Entity 注解来进行声明。 声明实体Bean @Entity public class Flight implements Se

lidongtang的专栏 1295

Hibernate注解

<br />好久就想玩一下hibernate注解了(因为不用hbm文件,维护起来也简单,灵活性较高,适应需求变化作出快速变动,还有一些好处就不一一例举啦),但是没有时间,今天搞了一下,碰个几个问题,我想这应该也就新手最容易碰的。问题有三: <br />    第一、Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'systheache0_.theacherId' in 'field li

haobo920的专栏 2386

hibernate注解使用

hibernate默认使用xml映射文件来关联实体和数据库表,随着系统的越来越复杂,每增加一个实体类,就需要配置一个xml映射文件,一般的系统少说也有十几个实体类,多的可能会有上百个实体,如此数量繁多的xml配置,在开发中也是很难维护的,实体一改动,配置文件就需要做相应的调整,通过xml配置的方式在实际中,也越来越不推荐使用,而是通过注解的方式。 hibernate注解,默认情况下,只需要配置@...

feinifi的博客 2779
上一篇: Hibernate JPA :No Persistence provider for EntityManager nam
下一篇: Hibernate学习之路(9) JPA实例
QEcode
博客等级 码龄10年 39粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值