springboot+JPA

发布于:2025-08-13 ⋅ 阅读:(17) ⋅ 点赞:(0)

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: 8896

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mariadb://ip1.ip2.ip3.ip4:3306/springbootJPA?useUnicode=true&characterEncoding=UTF-8
    driver-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 {
    @Autowired
    private BalanceRepository balanceRepository;

    @Override
    @Transactional
    public Balance saveOne(Balance balance) {
        return balanceRepository.save(balance);
    }
}

BalanceController

@RestController
public class BalanceController {
    @Autowired
    private BalanceService balanceService;

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

postman调用

post请求
localhost:8896/save

request body:
{
    "accountNum":"abcd123",
    "amount":12.34,
    "type":"prod",
    "comment":"test"
}

数据库表

create table balance_details
(
    id          int auto_increment
        primary key,
    account_num varchar(30)  null,
    type        varchar(10)  null,
    comment     varchar(100) null,
    amount      double       null
);

网站公告

今日签到

点亮在社区的每一天
去签到