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
);