spring JPA整合hibernate,IDEA社区版,Java

news2024/11/27 14:40:12

spring JPA整合hibernate,IDEA社区版,Java

本文基于IDEA社区版,不是IDEA企业版。

(1)首先用IDEA新建一个spring web项目。参考文章:

IDEA社区版(Community Edition)创建Springboot-Web项目,Java_zhangphil的博客-CSDN博客除了可以通过application.yml文件配置MyApp外,也可以通过application.properties配置,application.properties与application.yml配置写法不同。特别注意,如果resources下面同时存在application.yml和application.properties两个配置文件,那么application.properties里面的配置将覆盖application.yml的配置。(3)在main目录下建立项目的代码包(目录层次结构)https://zhangphil.blog.csdn.net/article/details/126894920

(2)pom.xml添加引用:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.4</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.hibernate.orm</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>6.1.3.Final</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

(3)在resources下面的application.properties里面写入配置,如果application.properties不存在,新建application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/db_demo?useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.generate_statistics=false

(4)在本机上启动mysql数据库。启动端口在3306,参考文章:

mysql数据库环境配置和安装启动,Windows_zhangphil的博客-CSDN博客先下载mysql的zip压缩包:MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/下载解压后,配置my.ini文件,放到mysql的程序目录里面,my.ini文件:[mysqld]port=3306basedir=D:\mysql\mysql-8.0.27-winx64datadir=D:\mysql\data[client] port=3306default-character-shttps://blog.csdn.net/zhangphil/article/details/122414377启动mysql后,创建一个名为 db_demo 的数据库(对应(3)中的数据库链接url里面数据库名字)

把账号root的密码改成(3)中的相同,本例是123456。参考:

mysql数据库重置root用户名和密码_zhangphil的博客-CSDN博客先下载mysql的zip压缩包:MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/下载解压后,配置my.ini文件,放到mysql的程序目录里面,my.ini文件:[mysqld]port=3306basedir=D:\mysql\mysql-8.0.27-winx64datadir=D:\mysql\data[client] port=3306default-character-s。https://blog.csdn.net/zhangphil/article/details/126688161

命令:

mysql -uroot -p123456

登录mysql数据库,创建db_demo:

create database db_demo;
show databases;

(5)在IDEA开发工具的左下角打开JPA Structure,新建一个JPA的实体User

 

再新建一个Spring Data Repository,名字可以取为UserRepository。

 

此时的main/java/test代码包里面有User.java和UserRepository.java,

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> {
}

在IDEA自动生成的代码基础上补全User.java,根据自己的需要添加字段(name和age是自己添加的):

import javax.persistence.*;

@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id", nullable = false)
    private Long id;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    private String name;

    public int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

新建一个UserController,这个类主要为了测试往数据库写数据(不重要,和JPA无关,仅作数据添加):

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping(path = "/add")
    public User addUser() {
        User user = new User();
        user.setName("zhang");
        user.setAge(18);

        User save = userRepository.save(user);
        return save;
    }
}

启动的main application类:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class Main {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(Main.class, args);
    }
}

(6)最终的项目代码结构为:

(7)以上完成后,启动Main.java,日志输出部分内容为:

spring jpa自动连接Mysql数据库创建user表结构。此时在mysql执行命令查看JPA对mysql的写的表:

use db_demo;
show tables;
describe user;

说明JPA正常工作了。

 (8)此时在浏览器访问 localhost:8080/add

 在mysql控制台查看JPA是否真正写入了mysql数据:

JPA写入成功。

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

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

相关文章

第十二章 使用 Monorepo 方式管理组件生态

组件库一般都会配有周边产品&#xff0c;比如 Admin 、Template、CLI 工具等等。周边产品相当于有关联的多个项目&#xff0c;更准确的说法是多个软件包。这个时候就应该使用 Monorepo 方式组织代码&#xff0c;方便频繁在多个项目间同时交替开发&#xff0c;同时发布&#xff…

图解LeetCode——895. 最大频率栈(难度:困难)

一、题目 设计一个类似堆栈的数据结构&#xff0c;将元素推入堆栈&#xff0c;并从堆栈中弹出 出现频率 最高的元素。 实现 FreqStack 类: FreqStack() 构造一个空的堆栈。void push(int val) 将一个整数 val 压入栈顶。int pop() 删除并返回堆栈中出现频率最高的元素。如果出…

圣杯与双飞翼布局,clip-path,列表与生成元素,计数器

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录圣杯与双飞翼布局clip属性clip-path属性例子&#xff08;不同区域使用不同颜色的导航&#xff09…

【MySQL 18】Docker 安装 MySQL8 .0.30

1、查看可用的 MySQL 版本 访问 MySQL 镜像库地址&#xff1a; https://hub.docker.com/_/mysql?tabtags 。2、拉取 MySQL 8.0.30 镜像 拉取官方的指定版本的镜像&#xff1a; docker pull mysql:8.0.30[rootlocalhost deploy]# docker pull mysql:8.0.30 8.0.30: Pulling…

Gly-Gly-Arg, 54944-27-3/55033-48-2

贻贝信息素的模拟物&#xff0c;诱导各种贻贝物种的聚集&#xff0c;如绒螯虾。GGR还能刺激浮游生物幼虫定居。 编号: 401458中文名称: Gly-Gly-Arg英文名: Gly-Gly-ArgCAS号: 54944-27-3/55033-48-2单字母: H2N-GGR-OH三字母: H2N-Gly-Gly-Arg-COOH氨基酸个数: 3分子式: C10H2…

【C语言初阶(NEW)】五、操作符详解(二)|隐式类型转换|算术转换|操作符的属性

目录 一、表达式求值 1.1 隐式类型转换 1.1.1 什么是整型提升&#xff08;整型提升&#xff09; 1.1.2 整型提升的意义 1.1.3 有符号&#xff08;signed&#xff09;与无符号&#xff08;unsigned&#xff09;的区别 1.1.4 有符号&#xff08;signed&#xff09;类型的整…

Redis学习笔记②实战篇_黑马点评项目

若文章内容或图片失效&#xff0c;请留言反馈。部分素材来自网络&#xff0c;若不小心影响到您的利益&#xff0c;请联系博主删除。 资料链接&#xff1a;https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA&#xff08;提取码&#xff1a;eh11&#xff09;在线视频&#xff1a;…

知道创宇ScanA免费试用|守护网络空间内容安全生命线

《淮南子说山训》中有言&#xff0c;“众曲不容直&#xff0c;众枉不容正&#xff0c;故……众议成林&#xff0c;无翼而飞&#xff0c;三人成市虎”。随着互联网社交、即时通讯工具等社交媒体的蓬勃发展&#xff0c;大众发布、传播和获取信息的方式更加简便、渠道更为广泛。也…

安科瑞 ARCM300-Z-4G 导轨式智慧用电监控装置 猪舍无线火灾探测器

安科瑞 王晶淼/刘芳 1 概述 智慧用电在线监控装置是针对 0.4kV 以下的 TT、TN 系统设计的智能电力装置&#xff0c;具有单、三相交流电测量、四象限电能计量、谐波分析、遥信输入、遥信输出功能&#xff0c;以及 RS485 通讯或 GPRS 无线通讯功能&#xff0c;通过对配电回路的剩…

YOLO V5 详解

YOLO V5 Backbone SPPF SPP 是使用了3个kernel size不一样大的pooling 并行运算。SPPF是将kernel size为5的 pooling 串行运算&#xff0c;这样的运算的效果和SPP相同&#xff0c;但是运算速度加快。因为SPPF减少了重复的运算&#xff0c;每一次的pooling 运算都是在上一次运…

IP-guard产品相关端口和服务名称

数据库 SQL Server (SQLEXPRESS) 服务器 OCULAR V3 SERVER 中继器 OCULAR V3 MIDTIER SERVER 客户端 WINDOWS HELPER SERVICE 报表 OCULAR V3 REPORT SERVER web服务器 Ocular web server,OCULAR Console Web Service 云备份服务器 OCULAR File Cloud Backup Server,OCULAR Fil…

Java——迷你图书管理器(JDBC+MySQL+Apache DBUtils)

​ ✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;乐趣国学的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java案例…

沉睡者IT - Web3的未来在哪里?

欢迎关注沉睡者IT&#xff0c;点上面关注我 ↑ ↑ 专家说&#xff0c;web3将颠覆现在的互联网 今天我们来讨论一下&#xff0c;web3会颠覆现在的互联网呢&#xff1f; 看了小编往期的作品你应该知道&#xff0c;如果同样的作品发在web3平台上&#xff0c;你将获取到收益。 那…

【笔试强训】Day 5

&#x1f308;欢迎来到笔试强训专栏 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句鸡汤&#x…

强化学习泛化性 综述论文阅读 A SURVEY OF GENERALISATION IN DEEP REINFORCEMENT LEARNING

强化学习泛化性 综述论文阅读摘要一、介绍二、相关工作&#xff1a;强化学习子领域的survey三、强化学习中的泛化的形式3.1 监督学习中泛化性3.2 强化学习泛化性背景3.3 上下文马尔可夫决策过程3.4 训练和测试上下文3.6 应用实例3.7 更可行泛化的其他假设3.8 备注和讨论4. 强化…

SSM整合

整合的思路是&#xff1a; 先创建spring框架 通过spring整合spring mvc 通过spring整合mybatis 工程创建 创建Maven工程–>create for archtype–>webapp 创建项目结构 在recourses目录下创建 dbconfig.properties、log4j.properties、mysqlConfig.xml、springmvc.xml、…

css3实现一个3d楼梯动画

背景 &#x1f44f;&#x1f44f;通过给出的宽/高个数&#xff0c;用css3的transform以及transform-style快速的实现一个3d楼梯&#xff0c;速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 定义css变量&#xff1a;宽w、高…

cadence SPB17.4 - allegro - disable recent Designs list

文章目录cadence SPB17.4 - allegro - disable recent Designs list概述笔记效果备注ENDcadence SPB17.4 - allegro - disable recent Designs list 概述 和csdn同学讨论问题, 他的问题如下: cadence如何在不去掉startpage的情况下只Recent Projects呢&#xff1f;&#xff…

【能效管理】变电站综合自动化监控系统在35kV变电站中应用

摘要&#xff1a;Acrel-1000变电站综合自动化系统&#xff0c;是我司根据电力系统自动化及无人值守的要求&#xff0c;总结国内外的研究和生产的先进经验&#xff0c;专门研制出的新一代电力监控系统。本系统具有保护、遥测、遥信、遥脉、遥调、遥控功能&#xff0c;可实现无人…

Lakehouse架构指南

什么是数据湖&#xff0c;为什么需要数据湖&#xff1f; 数据湖是一种存储系统&#xff0c;具有底层数据湖文件格式及其不同的数据湖表格式&#xff0c;可存储大量非结构化和半结构化数据&#xff0c;并按原样存储&#xff0c;但没有特定用途。广泛的技术和非技术数据消费者可…