【Spring Data Jpa】原生Jpa的使用

news2025/1/15 6:21:15
在这里插入图片描述

【Spring Data Jpa】原生Jpa的使用

    • 1. Dependency
    • 2. Config
      • 1.1 persistence.xml
      • 1.2 Entity
      • 1.3 application.properties
    • 3. Test
    • 4. 原生JdbcTemplate
    • 5. Awakening


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

在这里插入图片描述


1. Dependency

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.0.7.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.0.7.Final</version>
        </dependency>

2. Config

1.1 persistence.xml

  • 配置文件路徑
    在这里插入图片描述
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <!--持久化单元配置,在配置文件中至少有一个
        name:持久化单元名称
        transaction-type:事务模式。RESOURCE_LOCAL:本地事务,单数据库的事务 JTA:分布式事务,多个数据库的事务
    -->
    <persistence-unit name="xxxx" transaction-type="RESOURCE_LOCAL">
        <!--配置JPA提供商-->
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <!--数据库的方言,告诉JPA当前应用使用的数据库-->
            <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
            <!--连接数据库配置-->
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="root"/>
            <property name="javax.persistence.jdbc.driver" value="xxxx"/>
            <property name="javax.persistence.jdbc.url" value="xxx"/>

            <!--Hibernate的属性配置-->
            <!--是否打印sql语句-->
            <property name="hibernate.show_sql" value="true"/>
            <!--是否格式化sql语句-->
            <property name="hibernate.format_sql" value="true"/>
            <!--是否自动创建数据库表
                可选值:create、update、none
                create:程序自动创建数据库表,如果表存在则先删除后创建
                update:程序自动创建数据库表,如果表存在则不创建。
                none:不会创建表
            -->
            <property name="hibernate.hbm2ddl.auto" value="create"/>

        </properties>
    </persistence-unit>
</persistence>

1.2 Entity

在这里插入图片描述

1.3 application.properties

在这里插入图片描述

3. Test

public class JpaTest {
    @Test
    public void firstTest(){
//        1. 创建一个`EntityManagerFactory`对象。在系统中一般都是单例的。
        EntityManagerFactory factory = Persistence.createEntityManagerFactory("xxxx");
//        2. 使用工厂对象创建一个`EntityManager`对象。一个`EntityManager`就是一个连接。是一个多例对象。使用完毕之后就关闭。
        EntityManager entityManager = factory.createEntityManager();
//        3. 开启事务。
        EntityTransaction transaction = entityManager.getTransaction();
        transaction.begin();
//        4. 创建一个`Customer`对象。
        Customer customer = new Customer();
        customer.setCustName("小王");
        customer.setCustLevel("VIP");
        customer.setCustSource("电话");
        customer.setCustPhone("12345678910");
        customer.setCustAddress("浙江绍兴");
//        5. 使用`Entitymanager`对象的`persist`方法向数据库插入数据。
        entityManager.persist(customer);
//        6. 事务提交
        transaction.commit();
//        7. 关闭连接
        entityManager.close();
        //系统关闭之前关闭工厂对象
        factory.close();
    }
}

4. 原生JdbcTemplate

在这里插入图片描述

5. Awakening

     在一秒钟内看到本质的人和花半辈子也看不清一件事本质的人,自然是不一样的命运。

在这里插入图片描述

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

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

相关文章

本地连接github

本地连接github 想要通过github把本地代码同步一下&#xff0c;但是每次换一个电脑都要重新搜索如何配置连接github&#xff0c;趁着这次机会把电脑配置的时候记录一下&#xff0c;到时候找起来方便一点 一、git环境配置 1、首先安装git 找个安装包直接安装就行 2、配置用…

跨越行业壁垒:金融校对软件在跨国金融业务中的应用

随着全球金融市场的融合和跨国金融业务的快速发展&#xff0c;金融专业人士需要处理不同语言、文化和法规背景下的金融文档。金融校对软件在这一领域发挥着至关重要的作用&#xff0c;为跨国金融业务提供有力支持。本文将探讨金融校对软件在跨国金融业务中的应用。 一、跨语言支…

【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【工具】使用VS Code调试Docker Container中的代码

目录 使用VS Code调试Docker Container中的Autoware.ai代码第一种方法 -- 在VS Code中进行DebugStep1Step2Step3Step4c_cpp_properties.jsonlaunch.jsonsettings.jsontask.json Step5Step6Step7参考链接 第二种方法 -- cmake重新编译cmake使用方法&#xff08;简介&#xff09;…

SPARQL endpoint with Ontop CLI部署,python使用SPARQLWrapper

Ontop CLI部署&#xff0c;避免踩坑 0.前言1.提示2.详细部署流程3.python操作4.碎碎念 0.前言 教程&#xff1a;Setting up an Ontop SPARQL endpoint with Ontop CLI照着教程来&#xff0c;不知道为啥&#xff0c;总是报错&#xff0c;后来发现&#xff0c;手机搜到的跟电脑不…

Mybatis模糊查询——三种定义参数方法和聚合查询、主键回填

目录 相关导读 一、使用#定义参数 1. 持久层接口添加根据名字内容模糊查询方法 2. UserMapper.xml映射文件添加标签 3. 添加测试方法 4. 运行结果 二、使用$定义参数 1. UserMapper.xml映射文件更改标签内容 2. 修改测试方法 3. 运行结果 三、使用标签定义参数 1. …

JavaWeb开发 —— MyBatis入门

目录 一、快速入门程序 二、配置SQL提示 三、JDBC 四、数据库连接池 五、lombok工具包 MyBatis是一款优秀的 持久层Dao层 框架&#xff0c;用于简化JDBC的开发。 MyBatis本是 Apache的一个开源项目iBatis, 2010年这个项目由apache迁移到了 google code&#xff0c;并且改…

企业为什么都需要产品手册?

随着科技的不断发展和市场竞争的日益激烈&#xff0c;企业在推广和销售产品时需要给客户提供更多的信息和保障&#xff0c;而产品手册就成为了必不可少的工具之一。本文将从以下几个方面详细介绍企业为什么都需要产品手册。 产品手册的定义和作用 产品手册是一本介绍企业产品…

【C++初阶】:指针空值nullptr

指针空值nullptr 一.空指针二.空指针nullptr 一.空指针 在良好的C/C编程习惯中&#xff0c;声明一个变量时最好给该变量一个合适的初始值&#xff0c;否则可能会出现不可预料的错误&#xff0c;比如未初始化的指针。如果一个指针没有合法的指向&#xff0c;我们基本都是按照如下…

无人机巡检智能一体化解决方案

随着无人机技术的不断发展&#xff0c;无人机应用领域已经越来越生活化&#xff0c;其产品不仅在军事、商业等领域得到了广泛应用&#xff0c;也在普通人的生活中得到了广泛应用。无人机的自动巡检是无人机应用的一个重要方向&#xff0c;具有广阔的发展前景&#xff0c;本文将…

太阳的G2

我已经忘记是怎么喜欢上保罗的 入职腾讯的第一天&#xff0c;同事看到我的英文名cris&#xff0c;就笃信我应该是保罗的球迷。 是的&#xff0c;我是保罗的球迷「当然&#xff0c;不只是保罗的球迷」。 14-15赛季&#xff0c;保罗在的快船跟马刺鏖战7场&#xff0c;硬是在第7场…

NumberPicker分析(二)

NumberPicker分析(二) NumberPicker继承自LinearLayout。一般而言&#xff0c;无论是继承自View&#xff0c;还是继承自ViewGroup&#xff0c;必然会经过如下的几个阶段&#xff1a; onMeasureonLayoutonDraw onMeasure 在onMeasure方法测量当前控件大小&#xff0c;为正式…

Faster RCNN系列2——RPN的真值与预测值概述

Faster RCNN系列&#xff1a; Faster RCNN系列1——Anchor生成过程 Faster RCNN系列2——RPN的真值与预测值概述 Faster RCNN系列3——RPN的真值详解与损失值计算 Faster RCNN系列4——生成Proposal与RoI Faster RCNN系列5——RoI Pooling与全连接层 对于目标检测任务&#xf…

Replicator简介

Replicator 文章目录 ReplicatorReplicator简介合成数据训练背后的理论Replicator核心组件已知的问题 Replicator简介 Omniverse Replicator 是一个高度可扩展的框架&#xff0c;构建在可扩展的 Omniverse 平台上&#xff0c;可生成物理上准确的 3D 合成数据&#xff0c;以加速…

传输线的物理基础(十):特性阻抗的频率变化

到目前为止&#xff0c;我们一直假设传输线的特性阻抗随频率保持不变。正如我们所见&#xff0c;从传输线前端看&#xff0c;输入阻抗与频率密切相关。毕竟&#xff0c;在低频时&#xff0c;远端开路的传输线的输入阻抗看起来像一个电容器&#xff0c;阻抗开始很高&#xff0c;…

JavaScript中的执行上下文和执行栈

执行上下文概念以及理解 执行上下文是评估和执行JavaScript代码环境的抽象概念&#xff0c;但我们在JavaScript中所做的声明变量&#xff0c;声明函数&#xff0c;执行函数。他们都是在执行上下文中运行&#xff0c;也有了所谓的作用域。 执行上下文的类型 执行上下文分为三…

创建vite+vue+electron项目

写在前面的废话 首先&#xff0c;这是一篇缝合文&#xff0c;我的目的就是想用vite、vue结合electron打包一个windows应用&#xff1b;其次&#xff0c;项目只是这三个工具的简单应用&#xff0c;目前还没有往里面添加其他内容。再次&#xff0c;项目过程中参考了google的多篇文…

执行数学的运算

数学是计算机编程的重要能力。遗憾的是&#xff0c;对shell脚本来说&#xff0c;这个处理过程比较麻烦。在shell脚本中两种途径来进行数学运算。 expr命令 最开始&#xff0c;Bourne shell提供了一个特别的命令用来处理数学表达式。expr命令允许在命令行上处理数学数学表达式。…

EMQX vs VerneMQ | 2023 MQTT Broker 对比

引言 EMQX 和 VerneMQ 都是用 Erlang/OTP 开发的高性能、分布式开源 MQTT Broker&#xff0c;以其稳定性、容错性和扩展性著称。 EMQX 是目前全球最受欢迎的 MQTT Broker 之一&#xff0c;而 VerneMQ 项目近年来却没有积极地开发和维护。 本文是《2023 年 MQTT Broker 对比》…

可视化电子标签在仓储管理上的应用

随着经济快速增长和激烈的国内外市场竞争&#xff0c;要求企业运作的每个环节反应要迅速&#xff0c;经济转型要求更趋向改善工作流程、提高作业效率、减低运作成本、增加企业效益成为当务之急。虽然许多企业都有实施库存管理系统&#xff0c;但系统主要以人工盘点和走单据流程…