当前位置: 首页 > news >正文

springboot+JPA

JDK17+Springboot3.4.6

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.6</version><relativePath/>
</parent><!--JPA起步依赖-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

application-dev.yaml

server:port: 8896spring:datasource:username: rootpassword: rooturl: jdbc:mariadb://ip1.ip2.ip3.ip4:3306/springbootJPA?useUnicode=true&characterEncoding=UTF-8driver-class-name: org.mariadb.jdbc.Driver#  方言jpa:properties:hibernate:dialect: org.hibernate.dialect.MySQL8Dialect

bean Balance

import jakarta.persistence.*;
import lombok.Data;//实体类与表映射
@Entity(name = "balance_details")
@Data
public class Balance {//主键id@Id//设置主键自增//GenerationType.AUTO 策略在 MySQL 环境下错误地使用了 SEQUENCE(序列)生成方式,而 MySQL 不支持 原生的序列(Sequence)对象//@GeneratedValue(strategy = GenerationType.AUTO)//识别策略可以在mysql上用@GeneratedValue(strategy = GenerationType.IDENTITY)private Integer id;//属性名与表字段名不一致@Column(name = "account_num")private String accountNum;private double amount;private String type;private String comment;
}

repository BalanceRepository

import com.ben.bean.Balance;
import org.springframework.data.jpa.repository.JpaRepository;/**Balance 操作的实体类, Integer 当前实体类被@id注解修饰也就是主键的数据类型*/
public interface BalanceRepository extends JpaRepository<Balance, Integer> {
}

接口 IBalance

public interface IBalance {Balance saveOne(Balance balance);
}

接口实现类 BalanceService

@Service
public class BalanceService implements IBalance {@Autowiredprivate BalanceRepository balanceRepository;@Override@Transactionalpublic Balance saveOne(Balance balance) {return balanceRepository.save(balance);}
}

BalanceController

@RestController
public class BalanceController {@Autowiredprivate BalanceService balanceService;@PostMapping("/save")public Balance save(@RequestBody Balance balance) {Balance balance1 = balanceService.saveOne(balance);return balance1;}
}

postman调用

post请求
localhost:8896/saverequest body:
{"accountNum":"abcd123","amount":12.34,"type":"prod","comment":"test"
}

数据库表

create table balance_details
(id          int auto_incrementprimary key,account_num varchar(30)  null,type        varchar(10)  null,comment     varchar(100) null,amount      double       null
);
http://www.lryc.cn/news/618661.html

相关文章:

  • Socket 套接字常用方法
  • 知名车企门户漏洞或致攻击者远程解锁汽车并窃取数据
  • 外卖投诉:差评转复购的3步攻略
  • 腾讯云terraform学习教程
  • 终端互动媒体业务VS终端小艺业务
  • JAVA高级第十章 XML
  • 本地部署开源媒体中心软件 Kodi 并实现外部访问( Windows 版本)
  • UE5.3 C++ 动态多播实战总结
  • Mac M1探索AnythingLLM+Ollama+知识库问答
  • Flink Python API 提交 Socket 数据源的 WordCount 作业
  • 多轮问答与指代消解
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.2 验证安装(`node -v`、`npm -v`命令使用)
  • 6深度学习Pytorch-神经网络--过拟合欠拟合问题解决(Dropout、正则化、早停法、数据增强)、批量标准化
  • 企业高性能web服务器(4)
  • 企业AI人工智能培训基础实战
  • 电子电路原理学习笔记---第5章特殊用途二极管---第2天
  • PaddlePaddle 模型训练技巧
  • Emscripten 指南:概念与使用
  • 《Qwen2.5-VL 》论文精读笔记
  • SpringMVC的原理及执行流程?
  • vue excel转json功能 xlsx
  • 如何简单捋一遍LLM结构
  • 【MAUI】在 .NET MAUI 中实现全局异常捕获的完整指南
  • 全国产飞腾d2000+复旦微690t信号处理模块
  • 「ECG信号处理——(23)基于ECG和PPG信号的血压预测」2025年8月12日
  • Android领域驱动设计与分层架构实践
  • 【Unity3D实例-功能-下蹲】角色下蹲(二)穿越隧道
  • 【vue(二)Vuex】
  • 解决微前端子应用嵌入后样式被覆盖
  • C++11语法(2)