5.从零开始学springboot-连接数据库的几种方式-JPA

SpringBoot+Jpa实现CURD 开发工具使用IDEA,数据库用MYSQL5.7,Maven3.5.3导入依赖jar,JDK1.8版本. 新建项目 MYSQL用5.1.38驱动: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> ... 阅读详情

前言

我们已经学习了如何通过IDEA创建一个简单的springboot helloworld了,那么springboot如何连接mysql呢?

几种方式

Spring为各种支持的持久化技术,都提供了简单操作的模板和回调,目前大概有如下几种

ORM持久化技术模板类
JDBCorg.springframework.jdbc.core.JdbcTemplate
Hibernateorg.springframework.orm.hibernate.HibernateTemplate
IBatisorg.springframework.orm.ibatis.SqlMapClientTemplate
JPAorg.springfrmaework.orm.jpa.JpaTemplate

目前比较通用流行的做法是使用mybatis,这里我们简单的介绍下JPA的方式,因为它使用的也不少,后续的教程很多都是基于mybatis或mybatis-plus的,所以这边不多介绍。至于其它的方式,有时间我再补上。

创建空项目

首先我们使用IDEA创建一个基础的springboot2.0的项目(创建的过程略,可以参考前几章),无需加载任何依赖(依赖还是手动加载感悟更深)。

添加依赖

编辑pom.xml:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

如图
1.png

添加配置

更改application.properties为application.yml,添加内容:

spring:
  datasource:
    url: jdbc:mysql://192.168.145.131:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

建库

创建名为test的数据库,建表执行

CREATE TABLE `person` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `person` VALUES ('1', '1', '1');
INSERT INTO `person` VALUES ('2', '2', '2');
INSERT INTO `person` VALUES ('3', '3', '3');
INSERT INTO `person` VALUES ('4', '4', '4');
INSERT INTO `person` VALUES ('5', '5', '5');
INSERT INTO `person` VALUES ('6', '6', '6');
INSERT INTO `person` VALUES ('7', '7', '7');
INSERT INTO `person` VALUES ('8', '8', '8');
INSERT INTO `person` VALUES ('9', '9', '9');
INSERT INTO `person` VALUES ('10', '10', '10');
INSERT INTO `person` VALUES ('11', '11', '11');

完善

创建controller、entity和service的package,并创建对应的类文件,目录如下

2.png

controller/PersonController:

package com.mrcoder.sbjpa.controller;

import com.mrcoder.sbjpa.entity.Person;
import com.mrcoder.sbjpa.service.PersonRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class PersonController {
    @Autowired
    private PersonRepository personRepository;

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public List<Person> getPersonList(){
        return personRepository.findAll();
    }
}

entity/Person:

package com.mrcoder.sbjpa.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Person {
    @Id
    @GeneratedValue
    @Column(nullable = true)
    private String name;
    @Column(nullable = true)
    private int age;

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

    public int getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age + '}';
    }

}

service/PersonRepository:

package com.mrcoder.sbjpa.service;
import com.mrcoder.sbjpa.entity.Person;
import org.springframework.data.jpa.repository.JpaRepository;

public interface PersonRepository extends JpaRepository<Person, Long> {

}

运行

3.png

项目地址

https://github.com/MrCoderStack/SpringBootDemo/tree/master/sb-jpa

https://gitee.com/MrCoderStack/MrCoderStackBlog/tree/master/sb-jpa

请关注我的订阅号

订阅号.png

springboot整合jpa+h2     JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。    JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释,JPA的框架和接... 阅读详情

相关推荐

深入解析FOC电流环PI参数整定:从理论到实践

本文深入解析了FOC(磁场定向控制)中电流环PI参数整定的核心原理与实践方法。文章从永磁同步电机模型出发,详细阐述了基于带宽与零极点对消的工程法及考虑逆变器延迟的二阶系统整定法两种经典策略,并提供了从理论计算到安全上电调试的完整步骤与常见问题解决方案,帮助工程师精准调校电机控制性能。

weixin_29164497的博客 445

SpringBoot之配置数据库连接

SpringBoot之在application.yml中配置数据库连接

qq_53376718的博客 3316

ue4 角色奔跑/冲刺/蹲下 /蹲走 动作切换蓝图

序列:文章分为4部分: 一、准备工作+简单的蓝图连线 二、编写“行走” 混合空间 三、编写“蹲下”混合空间 四、合成2个动画,设置动画蓝图 —————————————— 一、准备工作 下载“动画初学者包”,添加到项目! 主要文件: 打开BP_playerCharacter,组价——添加组件,找到“摄像机”,“机臂” 没有找到就去其他项目复制过来 ———————————— 手写人物的移动,也可以在...

凉城古梦猫扑街的博客 4862

Springboot中数据库连接

1.配置jdbc连接文件 2.直接controller操作crud 二.mybatis连接 1.导入依赖 2.数据库连接文件与jdbc中的配置文件相同,使用jdbc方式中的即可!3.pojo实体类 4.controller操作修改 5.在配置文件中配置

weixin_48595687的博客 1万+

OpenResty无损升级内嵌nginx版本0DAY漏洞

OpenResty无损升级内嵌nginx版本,nginx

qq1071643762的博客 6902

全网最详细Seurat v5 流程复现(拿来即用)

本文是基于seurat v5版本的教程复现,主要依据来源于官网seurat v5建议大家有时间的话可以去官网进行详细阅读学习!本节内容在之前seurat v4的教程都很多都有提到,文章所用到的数据及代码已经给各位放在这里了,有需要自取!请点击这里哦提取码:bui1。

ZxVSaccount的博客 1万+

SpringBoot 项目连接数据库

springboot 项目连接数据库

qq_49288154的博客 1万+

Autodesk软件网络授权破解

Autodesk 全系列产品网络授权破解 此网络许可授权破解文件及方法适用Autodesk 绝大部分的产品, 安装网络许可证管理器Autodesk网络许可证管理器x64位官方下载地址( https://knowledge.autodesk.com/sites/default/files/file_downloads/nlm11.14.1.3_ipv4_ipv6_win64.msi ) Autod...

weixin_33919950的博客 8253

Spring Boot:实现与数据库的连接

快速开发:Spring Boot提供了一系列的开箱即用的功能和特性,使得开发人员可以快速构建和部署应用程序。简化配置:Spring Boot自动配置了许多常见的配置,如数据源、Web服务器、安全等等,这样开发人员可以专注于业务逻辑的实现,而不是配置。易于部署:Spring Boot可以将应用程序打包成可执行的JAR或WAR文件,这样可以方便地部署到任何支持Java的平台上。易于测试:Spring Boot提供了一系列的测试工具和框架,可以方便地进行单元测试、集成测试和端到端测试。

weixin_45880844的博客 1万+

【Verilog模块例化全解析:从入门到精通】

本文详细解析了Verilog模块例化的核心概念与方法。主要内容包括: 模块定义与例化的基本概念,强调模块例化会生成独立硬件电路; 两种端口连接方式:位置映射(按顺序连接)和名称映射(按端口名连接),推荐使用名称映射提高可读性; 参数化例化方法,通过parameter实现可配置模块设计; 多层模块嵌套的实战应用,展示复杂设计的层次化实现。 文章通过2位加法器等代码示例,对比分析了不同例化方式的优缺点,为硬件设计中的模块复用提供了实用指导。重点推荐名称映射和参数化设计方法,以提高代码可维护性和设计灵活性。

m0_58476824的博客 1326

Mit6.S081-实验1-Xv6 and Unix utilities

Mit6.S081-实验1-Xv6 and Unix utilities前言一、Boot xv61,实验目的2,操作流程1)切换到xv6-labs-2020代码库的lab1分支2)启动xv63)测试xv64)过程分析5)其他操作二、在xv6中添加一个自己编写的程序1,源码准备2,编译配置3,测试添加程序4,过程分析三、xv6中shell简析 前言 一、Boot xv6 1,实验目的 利用qemu启动xv6 2,操作流程 1)切换到xv6-labs-2020代码库的lab1分支 git checkout ut

code a better life~ 36万+

利用springboot连接数据库

利用springboot连接数据库: 整个过程可以分为两步: 第一步是将数据库的表格数据提取到后端,通过测试抓取数据,判断数据是否已经从数据库传递到后端。 第二步是将数据从后端通过接口传到前端,因为前后端接口不一致,因此需要通过解决跨域问题将后端数据传到前端,实现数据的呈现。 第一步: 一、创建配置文件(一定要注意缩进,缩进不当会报错): 作用:配置数据库,连接数据库(地址、用户名、密码等)。 spring: datasource: url: jdbc:mysql://loca

m0_51660523的博客 1273

基于 MFC 和 C++ 的语音识别客户端实现方案

语音 SDK:[Microsoft Speech SDK](https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/speech-sdk)(建议使用最新版)1. **Azure 语音服务密钥**:需要在 [Azure 门户](https://portal.azure.com/) 中创建语音资源,获取密钥和区域(如 `eastasia`),替换代码中的占位符。

寒寒豆豆软件公司的博客 152

6.从零开始学springboot-连接数据库的几种方式-JDBC

前言 上一节实现了JPA操作mysql,这一节我们实现jdbc也就是jdbcTemplate操作mysql。 创建空项目 首先我们使用IDEA创建一个基础的springboot2.0的项目(创建的过程略,可以参考前几章),无需加载任何依赖(依赖还是手动加载感悟更深)。 添加依赖 pom.xml: &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.s...

CTO技术的博客 9860

android 蓝牙通讯demo

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

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

从零开始搭建Springboot+JPA后台

一、环境、工具 jdk16.0.2 java 11 SpringBoot Mybatis jdk Maven mysql 二、搭建后台spring-boot框架 首先创建新项目,点击new- project,选择Spring Initializr next ...

白洞,白色的明天在等着我们 2014

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【SpringBoot 02】SpringBoot整合常用框架Junit5、MyBatis、hikari、JPA、redis、Lombok的使用

文章目录SpringBoot集成Junit5SpringBoot集成MyBatisSpringBoot集成hikarihikari数据库连接池【自动集成】 SpringBoot集成Junit5 SpringBoot默认集成Junit5,可以直接使用。通过在单元测试类上添加注解 @SpringBootTest 然后在方法方法上添加注解 Test 来实现单元测试。 测试类 @SpringBootTest class Demo01JunitApplicationTests { @Autowired

Java小皮孩 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

springboot 整合 Mybatis、JPA、Redis

引言 在springboot 项目中,我们是用ORM 框架来操作数据库变的非常方便。下面我们分别整合mysql ,spring data jpa 以及redis 。让我们感受下快车道。 我们首先创建一个springboot 项目,创建好之后,我们来一步步的实践。 使用mybatis 引入依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis

程序员爱酸奶 1万+

jpa连接mysql数据库_springboot-连接数据库的几种方式-JPA

前言我们已经学习了如何通过IDEA创建一个简单的springboot helloworld了,那么springboot如何连接mysql呢?几种方式Spring为各种支持的持久化技术,都提供了简单操作的模板和回调,目前大概有如下几种ORM持久化技术模板类JDBCorg.springframework.jdbc.core.JdbcTemplateHibernateorg.springframewor...

weixin_34213766的博客 542

SpringBoot中连接MYSQL数据库,并使用JPA进行数据库的相关操作

今天给大家介绍一下如何SpringBoot中连接Mysql数据库,并使用JPA进行数据库的相关操作。 想学习分布式、微服务、JVM、多线程、架构、java、python的童鞋,千万不要扫码,否则后果自负~ 步骤一:在pom.xml文件中添加MYSQl和JPA的相关Jar包依赖,具体添加位置在dependencies中,具体添加的内容如下所示。 <!--数据库相关配置-->...

林老师带你学编程 3万+

SpringBoot入门篇 04、连接数据库(多种整合方式)

文章目录前言前提准备IDEA连接mysql一、整合JDBC代码实现原理分析二、整合Druid数据源三、整合JPA参考文章 前言 本篇博客是根据【狂神说Java】SpringBoot最新教程IDEA版通俗易懂 整理的学习笔记,若文章中出现相关问题,请指出! 所有博客文件目录索引:博客目录索引(持续更新) 前提准备 安装mysql5.7(或者其他):mysql5.7安装教程 IDEA连接mysql IDEA右边点击Database—+号—选择mysql 填写对应信息 点击测试,可能会出现错误,见下方

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 5819

SpringBoot通过JPA连接Mysql集群

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录为什么要进行Mysql的主从复制一、Mysql主从复制配置1.配置主数据库2.配置从数据库3.在主数据库上进行用户授权4.在从数据库上进行连接二、SpringBoot通过JPA的方式连接使用Mysql集群1.配置文件2.数据源对象创建3.数据源路由配置4.数据源对象缓存5.多数据源配置6.配置AOP7.在Service中的使用8.代码目录结构 为什么要进行Mysql的主从复制 1.可以实现数据库的读写分离,提高对数据的访问效率

weixin_40835745的博客 2456

springboot jpa hikari连接池配置

springboot jpa与hikari连接池配置 application.properties文件配置: spring.jpa.hibernate.ddl-auto=update spring.datasource.hikari.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://...

你当像鸟飞往你的山~~ 5428

SpringBoot中操作MongoDB数据库(使用MongoTemplate和Jpa方式)

1.声明 当前的内容用于本人学习和操作当前的SpringBoot对MongoDB数据库的操作,该操作分为使用MongoTemplate和Jpa两种方式 当前内容借鉴:Spring Data MongoDB 2.pom依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/...

编程学习者的博客 4628

快速上手SpringBoot整合JPA

Spring 的一个子项目。用于简化数据库访问,支持NoSQL和关系数据库存储。目标是使数据库操作变得简单便捷.JPA: Java Persistence API 叫做java持久化接口规范, 定义了java操作数据库的模式.: 是Spring Data项目的一部分, 基于JPA规范标准, 提供了一套简洁的API和注解, 用于与关系型数据库进行交互, 使我们可以通过简单的Java对象来表示数据库表, 并且通过继承提供的框架类来执行通用的CRUD操作.

2404_87285359的博客 1623

SpringBoot集成JPA及基本使用

本篇从JDBC、ORM、JPA、Spring Data JPA说起,分享了SpringBoot集成JPA的实现、Repository的命名规则以及InvalidDefinitionException异常的处理

JingAi_jia917的博客 5557
上一篇: 3.从零开始学springboot-IDEA创建HelloWord
下一篇: 6.从零开始学springboot-连接数据库的几种方式-JDBC
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值