gpt4 book ai didi

mysql - 如何将多行作为单个对象传递

转载 作者:行者123 更新时间:2023-11-29 16:07:34 25 4
gpt4 key购买 nike

postman image

这是 Controller 方法:

@RequestMapping(value = "/add567", method = RequestMethod.POST, consumes = "application/json")
public Response addObj(@RequestBody List121 classA){

return service1.addObj(classA);
}

这是实体类:

 package com.excel.entity;

import java.util.ArrayList;
import java.util.LinkedHashMap;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;

@Entity
@Table(name="ClassA")
public class ClassA extends ArrayList<Object> {
@Id
@Column(name="rollNo")
private int rollNo;

@Column(name="name")
private String name;

@Column(name="english")
private double english;

@Column(name="maths")
private double maths;

@Column(name="science")
private double science;

@Column(name="totalMarks")
private double totalMarks;

@Column(name="percentage")
private double percentage;

@Column(name="status")
private boolean status;

@Lob
@Column(name="file", columnDefinition="BLOB")
private byte[] file;



public ClassA() {
// TODO Auto-generated constructor stub
}



public ClassA(int rollNo, String name, double english, double maths, double science, double totalMarks,
double percentage, boolean status, byte[] file) {
super();
this.rollNo = rollNo;
this.name = name;
this.english = english;
this.maths = maths;
this.science = science;
this.totalMarks = totalMarks;
this.percentage = percentage;
this.status = status;
this.file = file;
}



public int getRollNo() {
return rollNo;
}



public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}



public String getName() {
return name;
}



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



public double getEnglish() {
return english;
}



public void setEnglish(double english) {
this.english = english;
}



public double getMaths() {
return maths;
}



public void setMaths(double maths) {
this.maths = maths;
}



public double getScience() {
return science;
}



public void setScience(double science) {
this.science = science;
}



public double getTotalMarks() {
return totalMarks;
}



public void setTotalMarks(double totalMarks) {
this.totalMarks = totalMarks;
}



public double getPercentage() {
return percentage;
}



public void setPercentage(double percentage) {
this.percentage = percentage;
}



public boolean isStatus() {
return status;
}



public void setStatus(boolean status) {
this.status = status;
}



public byte[] getFile() {
return file;
}



public void setFile(byte[] file) {
this.file = file;
}


}

这是我从中获取列表的类:

import com.fasterxml.jackson.annotation.JsonInclude;


@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class List121 {

List<ClassA> classA;
List<ClassB> classB;
List<ClassC> classC;


public List<ClassA> getClassA() {
return classA;
}
public void setClassA(List<ClassA> classA) {
this.classA = classA;
}
public List<ClassB> getClassB() {
return classB;
}
public void setClassB(List<ClassB> classB) {
this.classB = classB;
}
public List<ClassC> getClassC() {
return classC;
}
public void setClassC(List<ClassC> classC) {
this.classC = classC;
}



}

这是用于存储在数据库中的 DAO 类:

public Response addObj(List121 classA){
System.out.println("entering");
ExcelAdd writer=new ExcelAdd();
List121 e1=new List121();
ClassA a1=new ClassA();
try{
s=sf.openSession();
tx=s.beginTransaction();
for(ClassA classa :classA.getClassA() ) {
a1.setRollNo(classa.getRollNo());
a1.setName(classa.getName());
a1.setEnglish(classa.getEnglish());
a1.setMaths(classa.getMaths());
a1.setScience(classa.getScience());
a1.setTotalMarks(classa.getTotalMarks());
a1.setPercentage(classa.getPercentage());
a1.setStatus(classa.isStatus());
a1.setFile(classa.getFile());
s.save(a1);
}


response.setStatus(200);
response.setMessage("succesfull");
tx.commit();
return response;
}
catch (Exception e) {
System.err.println("Exception : " + e.getMessage());
response.setStatus(500);
response.setMessage("unsuccesfull");
tx.rollback();
return response;
} finally {
s.close();
}

}

我正在 postman 中发布数据,但它给出了错误的请求:

我无法确定它给出的错误是什么。在 Postman 中收到错误请求。

最佳答案

我假设您正在寻找类似的东西

{
"classList": [
{
"rollNumber": "1",
"name": "Sham1"
},
{
"rollNumber": "2",
"name": "Sham2"
}
]
}

可以使用以下代码来实现相同的目的。

package com.example.demo.controller;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.domain.Clazz;
import com.example.demo.domain.School;

@RestController
@RequestMapping(path = "/v1")
public class TestController {

@PostMapping("/school")
public void school(@RequestBody School school) {
for(Clazz clazz : school.getClassList()) {
System.out.println(clazz.getName());
}
}
}

域对象 - 学校

package com.example.demo.domain;

import java.util.List;

public class School {

private List<Clazz> classList;

public List<Clazz> getClassList() {
return classList;
}

public void setClassList(List<Clazz> classList) {
this.classList = classList;
}

}

克拉兹

package com.example.demo.domain;

public class Clazz {
String rollNumber;
String name;

public String getRollNumber() {
return rollNumber;
}

public void setRollNumber(String rollNumber) {
this.rollNumber = rollNumber;
}

public String getName() {
return name;
}

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

}

postman

enter image description here

更新:以下内容对我有用,与OP共享相同的输入。 。我不确定这里使用的响应返回类型是什么。

@RequestMapping(value = "/add567", method = RequestMethod.POST, consumes = "application/json")
public ResponseEntity<List121> addObj(@RequestBody List121 classA){
System.out.println(classA.getClassA().get(0).getName());
return ResponseEntity.ok().body(getList121());
}

请分享有关返回类型的详细信息以进一步调试

关于mysql - 如何将多行作为单个对象传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55584754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com