JPA入门_day01

Spring Data JPA知识 day01 一、ORM概述 ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射 简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。 1.1 为什么使用ORM 当实现一个应用程序时(不使用O/R M... 阅读详情

1 JPA入门

1.1 什么是JPA

  1. JPA是Java Persistence API的简称
  2. JPA是持久层API,JPA就是做持久层,操作数据库
  3. 它是对象映射框架(ORM)的规范

1.2 为什么需要JPA

1.3 Hibernate和JPA的关系

JPA:它是ORM的规范
Hibernate:是开放源代码的ORM框架
简单一句话:JPA是持久化规范,而Hibernate是其实现。

1.4 JDBC和JPA的优缺点

1.4.1 jdbc优缺点

优点:

  1. jdbc操作数据库的底层技术
  2. 比较简单 比较直接,就可以操作数据库
    缺点:
  3. 转换的时候特别麻烦
  4. 重复性代码比较多
  5. 移植数据库比较麻烦
  6. jdbc 自身没有缓存(Cache),如果性能上面需要控制的化,就需要写缓存代码
  7. jdbc不是面向对象的思维来操作的呀 面向sql操作,如果是sql高手,操作jdbc很爽的;
1.4.2 JPA优缺点

优点:

  1. 面向对象操作,操作对象 就相当于操作数据 比如 entityManager.perisit(employee)
  2. 移植数据比较方法,以后如果想换数据库,只需要换一个数据库方言就OK
  3. JPA有缓存,效率不错的 (一级缓存 二级缓存 查询缓存)
    缺点:
  4. 不能干预sql的生成 ,查询一个数据 find 默认查询所有字段 (select * from )
  5. 有些优化 jpa做不了,比如特别大数据量的时候,jpa也不适合,mybatis也解决不了 (架构策略 分库 分表 (分布式))
  6. 一个项目里面 对sql要求比较高,就不适合jpa

2 jpa的使用

2.1 导入依赖的jar包

在这里插入图片描述

2.2 persistence.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <persistence-unit name="cn.itsource" transaction-type="RESOURCE_LOCAL">
        <properties>
            <!-- 必须配置4个连接数据库属性 -->
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
            <property name="hibernate.connection.url" value="jdbc:mysql:///db0723" />
            <property name="hibernate.connection.username" value="root" />
            <property name="hibernate.connection.password" value="123456" />

            <!-- 必须配置1个方言属性 -->
            <!-- 实现跨数据库关键类 :查询MySQLDialect的getLimitString方法 -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />

            <!-- 可选配置 -->
            <!-- 是否自动生成表-->
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <!-- 是否显示sql -->
            <property name="hibernate.show_sql" value="true" />
            <!-- 格式化sql -->
            <!-- <property name="hibernate.format_sql" value="true" /> -->
        </properties>
    </persistence-unit>
</persistence>

2.3 使用JPA完成一个新增操作

@Test
    public void testJpa() throws Exception {
        //先得到entityManagerFactory
        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("cn.itsource.jpa");

    }

    //添加
    @Test
    public void testAdd() throws Exception {
        User user = new User();
        user.setName("皮皮虾");
        //先得到entityManagerFactory
        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("cn.itsource.jpa");

        //开启工厂生成entityManager对象
        EntityManager entityManager = entityManagerFactory.createEntityManager();
        //获取事物
        entityManager.getTransaction().begin();//开启事物
        entityManager.persist(user);
        //提交事物
        entityManager.getTransaction().commit();
        //关闭事物
        entityManager.close();
        entityManagerFactory.close();
    }

2.4 建表策略

create 创建策略  每次都要先删除  再创建
 update  更新策略  不会删除  如果发现没有表 也会创建
         如果是表里面新增字段  配置有效果
         如果这个表里面已存在字段,修改属性  没有效果
 create-drop 先删除  在创建 再删除  不怎么会用
 validate  验证策略  如果有对应实体  但是没有对应的数据库表  会报错
           数据库多字段  OK
           数据库少字段  不OK

2.5 单表映射配置

@Entity
@Table(name = "t_employee")
public class Employee {
    @Id
    @GeneratedValue
    private Long id; //要求:主键,使用数据库的自动生成策略

    @Column(name = "username",length = 20,unique = true,nullable = false)
    private String name;  //要求:varchar(20),数据库名称为username,不能为空,唯一
    private String password;

    @Column(columnDefinition="int(20) default 25",updatable = false)
    private Integer age = 25; //要求:默认值是25,在插入数据时不允许覆盖(添加数据时不操作该字段)
    private Boolean sex;// 数据库没有布尔类型,bit对象

    @Column(columnDefinition = "decimal(19,2)")
    private BigDecimal salary;// 19,2

    @Column(updatable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date createTime;//包含年月日时分秒,不允许修改

    @Temporal(TemporalType.DATE)
    private Date birthday;//包含年月日

    @Temporal(TemporalType.TIME)
    private Date time;//包含时分秒

    @Lob
    private String text;//这是一个大文本

    @Transient
    private String temp;//这一个字段不要同步到数据库
《遥感大模型生产级实战:从数据到决策的端到端AI工程》系列第一部分:AI遥感工程师的基础设施与工具链-文章 4:传统遥感分析与机器学习基线 本章将系统性地介绍经典遥感分析工作流,从数据预处理到多维度特征工程,再到如何利用经典的机器学习模型(如随机森林、支持向量机)进行监督与非监督学习。我们将通过一个完整的“智慧农业作物分类”项目实战,展示如何利用我们之前构建的数据湖和工具链,从原始数据到最终的分析结果,构建一个性能可靠、可解释性强的基线系统。更重要的是,我们将深入剖析这种传统方法的局限性,从而为后续章节引入遥感大模型的必要性提供强有力的论证。 阅读详情

相关推荐

如何利用东南大学齿轮箱数据集进行故障诊断?从数据采集到模型训练全流程解析

本文详细解析如何利用东南大学齿轮箱数据集进行故障诊断,涵盖从数据采集到模型训练的全流程。通过信号预处理、特征工程构建及多种机器学习模型对比,帮助开发者高效实现工业设备健康管理。特别适合希望将AI技术应用于工业场景的Python开发者。

m2n3b4v5c6的博客 375

(一)JPA的快速入门

(一)JPA的快速入门

个人学习使用 1230

AXI 1G/2.5G Ethernet Subsystem IP核使用过程中参数配置全解

AXI 1G/2.5G Ethernet Subsystem 是一个为FPGA设计的以太网子系统,它支持1Gbps和2.5Gbps的数据传输速率,使得FPGA能够直接进行高速以太网通信。这个子系统通常包含以太网MAC控制器、GMII(千兆媒体独立接口)或RGMII(简化GMII)接口、以及可选的PHY(物理层)接口支持。

u011565038的博客 1万+

JPA入门

Java Persistence API是Java官方提供的一套持久层技术的规范应用程序接口。jpa属于官方规范技术。JDBC就是一套Java官方开发数据库访问技术的规范接口。JPA是一套开发ORM框架的规范,Hibernate实现JPA的接口。

weixin_53227829的博客 435

Fluent DPM模型保姆级教程:三通管颗粒流动模拟,从网格导入到轨迹图生成

本文提供Fluent DPM模型在三通管颗粒流动模拟中的保姆级教程,涵盖从网格导入到轨迹图生成的全流程。通过详细步骤和参数设置,帮助用户掌握DPM模型在颗粒流动模拟中的关键技巧,适用于化工、能源等领域的工程应用。

weixin_30615767的博客 578

RS422总线

①.RS422发送驱动器无高阻三态(浮空)状态RS422收发芯片,发送脚固定强驱动输出,永远钳位 A/B 差分电平,不能关断、不能悬空,只要芯片上电,TX+、TX - 就强制输出互补电压(一路高、一路低)。多条发送并联在同一组差分线上:两个驱动器一个拉 A 高、一个拉 A 低,B 线反向拉扯 → 电源→地大电流对灌,瞬间芯片过流发烫烧毁、总线电平短路错乱。注意:RS485 带DE/RE 收发使能脚:不用发送时可关闭驱动器,输出变成高阻浮空,让出总线,因此能多节点分时发送。③.多点通信方式,一主多从方式;

zhuimeng_1234的博客 222

SpringDataJPA(一) 配置整合与基本使用

JPA 的全称是 Java Persistence API , 即 Java 持久层 API。Spring Data JPA 是 Spring 生态中提出的一套数据库 ORM (对象关系映射)规范、抽象标准,或者说它是对ORM框架实现的顶层抽象封装,目的是整合不同的ORM技术以遵循统一的规范,并允许开发者以面向对象的方式实现数据库操作。

这里是阿安的博客 1706

小新学习K8s第一天之K8s基础概念

kubernetes是一个可移植,可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。kubernetes服务,支持和工具随处可见。作用:用于自动部署,扩展和管理“容器化应用程序”的开源系统。可以理解成k8s是负责自动化运维管理多个容器化程序(比如docker)的集群,是一个生态及其丰富的容器编排框架工具。

pangdongqiqi的博客 1226

三天快速入门Spring Data JPA之day01

springdatajpa三天学习安排: day1:orm思想和hibernate以及jpa的概述和jpa的基本操作 day2:springdatajpa的运行原理以及基本操作 day3:多表操作,复杂查询 回顾JDBC JDBC步骤:(连接前提导入驱动jar) 1.反射获取驱动 2.获得连接对象,get方法获取数据库连接(传参数=》数据库连接地址,用户名,密码) 3…创建Sql语句(利用占位符填充) 4.获取执行sql语句的对象Statement 1、执行静态SQL语句。通常通过Statement实例实

xtho62的博客 432

TLV320AIC3204音频CODEC硬件设计与调试实战

本文深入解析了TLV320AIC3204音频CODEC的硬件设计与调试实战。文章从芯片功能定位入手,详细阐述了电源时钟设计、模拟输入电路等关键硬件设计要点,并提供了软件驱动配置与分层调试方法,帮助工程师有效规避常见陷阱,解决底噪、失真等典型音频调试问题。

zero1的博客 1121

搞定安卓11+抓包难题:用Kitsune Mask、magic_overlayfs和LSPosed三件套绕过SSL Pinning(保姆级教程)

本文详细解析了安卓11+系统中抓包面临的核心挑战,包括SSL Pinning和Root检测机制,并提供了使用Kitsune Mask、magic_overlayfs和LSPosed三件套的完整解决方案。通过动态分区技术解析和工具链配置,帮助开发者绕过安全限制,实现高效抓包分析。

weixin_42665255的博客 441

jpa_day01学习总结

Jpa-day1一.理论1.1什么是jpa1.2什么是ORM1.3 JPA与JDBC的区别二.hello2.1 新建项目支持2.2 导包2.3 引入persistence.xml2.3.1 使用工具生成 META-INF\persistence.xml2.4 准备domain对象2.5 基本功能测试三.CRUD3.1 添加3.2修改3.3删除修改3.4查询一条数据3.5查询所有四.建表策略4.1 ...

wangyisheng233的博客 289

jre9下载 jdk9

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

JPA学习Day1

JPA学习Day1 1.什么是jpa? 1.JPA是Java Persistence API的简称。 2.JPA作为 Java EE 5.0 平台标准的 对象关系映射(ORM) 规范 2.Hibernate和JPA的关系 Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级(相对于EJB这一套)的对象封装,它将POJO(就是咱们的domain)与数据库表建立...

sdadaada的博客 174

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

jpa基础入门

将数据库交给jpa管理 ```java <persistence-unit name="jpa_day01" transaction-type="RESOURCE_LOCAL"> <properties> <!-- JDBC四大金刚 --> <property name="hibernat...

weixin_43404554的博客 190

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

springdata_day01

目标 理解ORM思想和该数 理解JPA和hibernate的关系 掌握maven单构件jpa项目并进行增删改查操作 掌握JPQL语句进行条件查询 1. ORM思想 1. 概述 ORM(Object-Relational Mapping) 表示对象关系映射。通过ORM,就可以把对象映射到关系型数据库中。 简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数...

wjl31802的博客 534

JPA的入门案例

JPA的入门案例 1 案例说明 案例是客户的相关操作(增删改查) 客户:就是一家公司 创建客户表的代码如下: CREATE DATABASE jpa; -- 创建数据库 USE jpa; -- 使用数据库 /*创建客户表*/ CREATE TABLE cst_customer ( cust_id BIGINT(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)', cust_name VARCHAR(32) NOT NULL COMMENT

weixin_40055163的博客 327

JPA_Day1

一、认识JPA 1、什么是JPA (1)Java持久层API,jpa就是做持久层,操作数据库 (2)它是对象映射框架(ORM)的规范 2、为什么需要JPA (1)以前使用jdbc,在对象和数据库数据之间转换特别麻烦 (2)他以面向对象的思维来操作数据,比如我操作一个java里面对象,就相当于操作数据库表数据 3、Hibernate和JPA的关系 Hibernate:它是ORM这个规范实现的框架 J...

Dear__Liu的博客 257

day01-SpringDataJPA

JPA第一天第1章1.ORM概述[了解]1.1为什么使用ORM1.2常见ORM框架第2章hibernate与JPA的概述[了解]2.1hibernate概述2.2JPA概述2.3JPA的优势2.4JPA与hibernate的关系第3章JPA的入门案例3.1需求介绍3.2开发包介绍3.3搭建开发环境[重点]3.3.1导入jar包3.3.2创建客户的数据库表和客户的实体类3.3.3编写实体类和数据库表的映射配置[重点]3.3.4配置JPA的核心配置文件3.4实现保存操作第4章JPA中的主键生成策略第5章JPA的

hu_zhi_chao的博客 832

springdataJpa-day01

一、什么是jpa jpa是一个开发规范,是一个orm框架的开发规范。是sun公司定义的。 orm:对象关系映射。是一个解决问题的一个思路。 二、jpa的提供商 1、Hibernate(使用) 完全支持jpa。业内最好的一个jpa框架。 2、OpenJpa 是apache旗下的一个开源项目,也是jpa规范的实现。 3、TopLink 也是一个开源项目。是Oracle公司的。 三、SpringData...

weixin_40085248的博客 274

JPA知识点整理

JPA知识点整理 JPA简介: JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 JPA入门案例: 导包 mysql驱动包 hibernate核心包 hibernate对JPA的实现包 配置文件: <persistence-unit name="jpa_...

Meetsummer的博客 1852

关于SpringDataJPA的解说day01

JPA第一天 第1章 1.ORM概述[了解] ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射 简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作...

u011614679的博客 304

MyBatis-day01-入门

MyBatis-day01-入门一、基本认识二、hello,mybatis2.1导包2.2 基本准备(表,domain)2.3创建配置文件jdbc.properties:数据库的参数mybatis-config.xml : mybatis核心配置ProductMapper.xml:sql语句2.4 测试三.工具类与CRUD3.1 准备MyBatisUtil3.1 完成CRUD3.1.1 produ...

Lonely Programmer 742

day66 JavaWeb框架阶段——SpringDataJPA【01】ORM概述(JPA中的主键生成策略,编写实体类和数据库表的映射配置[重点],使用JPA完成增删改查操作)

JPA第一天 今日源码: 链接:https://pan.baidu.com/s/1ZtXsykgwO_JzAl2xb3hunQ 提取码:e2rc 第1章 1.ORM概述[了解] ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据...

qq_38454176的博客 855

Hibernate_day01——hibernate入门(一)

一、搭建hibernate环境 第一步:导入hibernate的jar包(两部分:required和jpa) *因为使用hibernate时候,有日志信息的输出,hibernate本身没有日志输出的jar包,我们需要导入该jar包 不要忘记MySQL驱动的jar包! 导入步骤: (1)新建一个Java Project,命名hibernate_day01; (2)创建一个文件夹(folder),命名lib; (3)将所需要的jar包复制粘贴到lib; (4)将所有jar包全选——...

Fiona20的博客 250
上一篇: Maven&idea&UML
下一篇: JPA进阶_day02
虞铭轩、
博客等级 码龄7年 3粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值