gpt4 book ai didi

mysql - 数据库正在覆盖。来自 json 的最后一个条目写入数据库,所有其他条目都被覆盖。仅显示 Json 文件的最后一个条目

转载 作者:行者123 更新时间:2023-11-28 23:18:20 26 4
gpt4 key购买 nike

PlayerService

这是我的启动应用程序的服务类。

包io.anuj.springbootquickstart.topic;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class PlayerService {

@Autowired
private PlayerRespository playerRespository;
// private List<Topic> topics = new ArrayList<> (Arrays.asList(
// new Topic("Spring","Spring Framework","SpringFramework Description"),
// new Topic("Core","Core Framework","CoreFramework Description"),
// new Topic("JavaScript","JavaScript Framework","JavaScript Description")));
public List<Player> getAllPlayer(){
List<Player> player = new ArrayList();
playerRespository.findAll()
.forEach(player::add); //lambda expressions
return player;
}
public Player getPlayer(Long id){
//return topics.stream().filter(t -> t.getId().equals(id).findFirst().get());
return playerRespository.findOne(id);
}
public void addPlayer(Player player) {

playerRespository.save(player);

}
public void updatePlayer(Long id, Player player) {
playerRespository.save(player);

}
public void deletePlayer(Long id) {
//topics.removeIf(t -> t.getId().equals(id));
playerRespository.delete(id);
}

}



PLayerRepository

这是我的应用程序的播放器存储库。 包 io.anuj.springbootquickstart.topic;

import org.springframework.data.repository.CrudRepository;

public interface PlayerRespository extends CrudRepository <Player, Long>{




//crud repository-logic of any entity class
//getallTopic()
//gettopic(string id)
//update topic(topic t)
//deletetopic(string id)


}



PLayerController

这是播放器 Controller

package io.anuj.springbootquickstart.topic;


import java.io.FileReader;
import java.util.List;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;


@RestController
//wherever rest controller is written it will give json as output send back as a HTTP response
public class PlayerController {

@Autowired
private PlayerService playerService;
//get request by default
@RequestMapping("/player")
public List<Player> getallPlayer(){
return playerService.getAllPlayer();
}

//get request
@RequestMapping("/player/{id}")
public Player getPlayer(@PathVariable Long id){
return playerService.getPlayer(id);
}
//
@RequestMapping(method=RequestMethod.GET, value= "/getplayer")
public void addAllPlayer(){

Player player = new Player();
JSONParser parser = new JSONParser();

try {
Object ob = parser.parse(new FileReader("/home/bridgeit/Desktop/P.D-anuj/Json/newPlayerInfo.json"));
JSONObject object = (JSONObject) ob;

JSONArray data = (JSONArray) object.get("Playersinfo");

for (int i = 0; i < data.size(); i++)
{
JSONObject itemObj = (JSONObject) data.get(i);


Object nameObj = itemObj.get("player_name");
String playerName = (String) nameObj;
player.setPlayer_name(playerName);

Object imgObject = itemObj.get("player_img_url");
String playerPic = (String) imgObject;
player.setPlayer_img_url(playerPic);

Object roleObj = itemObj.get("player_role");
String roleName = (String) roleObj;
player.setPlayer_role(roleName);

Object battingStyleObj = itemObj.get("player_batting_style");
String battingStyleName = (String) battingStyleObj;
player.setPlayer_batting_style(battingStyleName);

Object bowlingObj = itemObj.get("player_bowling_style");
String bowlingName = (String) bowlingObj;
player.setPlayer_bowling_style(bowlingName);

Object nationalityObj = itemObj.get("player_nationality");
String nationalityName = (String) nationalityObj;
player.setPlayer_nationality(nationalityName);

Object dobObj = itemObj.get("player_dob");
String dobName = (String) dobObj;
player.setPlayer_dob(dobName);

Object teamIdObj = itemObj.get("team_id");
String teamIdName = (String) teamIdObj;
player.setTeam_id(teamIdName);


playerService.addPlayer(player);
}


} catch (Exception e) {
System.out.println(e);
}

}
/*@RequestMapping(method=RequestMethod.PUT, value= "/player/{id}")
public void updatePlayer(@RequestBody Player player,@PathVariable String id){
playerService.updatePlayer(id,player);
}
@RequestMapping(method=RequestMethod.DELETE, value= "/player/{id}")
public void deletePlayer(@PathVariable String id){
playerService.deletePlayer(id);
}*/
}

this is POJO class
Player.java
package io.anuj.springbootquickstart.topic;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import org.hibernate.annotations.GenericGenerator;

@Entity
/*@Table(name = "Player")*/
public class Player {
/*@Id
@GenericGenerator(name = "gene", strategy = "increment")
@GeneratedValue(generator = "gene")
@Column(name = "id")
private Long id;*/

@Id
@GenericGenerator(name = "gene", strategy = "increment")
@GeneratedValue(generator = "gene")
private long id;
private String team_id;
/*@Column(name = "name")*/
private String player_name;
/*@Column(name = "display_picture")*/
private String player_img_url;
/*@Column(name = "role")*/
private String player_role;
public Player(long id, String team_id, String player_name, String player_img_url, String player_role,
String player_batting_style, String player_bowling_style, String player_nationality, String player_dob) {
super();
this.id = id;
this.team_id = team_id;
this.player_name = player_name;
this.player_img_url = player_img_url;
this.player_role = player_role;
this.player_batting_style = player_batting_style;
this.player_bowling_style = player_bowling_style;
this.player_nationality = player_nationality;
this.player_dob = player_dob;
}


/* @Column(name = "batting_style")*/
private String player_batting_style;
/*@Column(name = "bowling_style")*/
private String player_bowling_style;
/*@Column(name = "nationality")*/
private String player_nationality;
/*@Column(name = "dob")*/
private String player_dob;
/*@Column(name = "teamId")*/


public Player(){
}











public String getTeam_id() {
return team_id;
}




public long getId() {
return id;
}











public void setId(long id) {
this.id = id;
}











public void setTeam_id(String team_id) {
this.team_id = team_id;
}


public String getPlayer_name() {
return player_name;
}


public void setPlayer_name(String player_name) {
this.player_name = player_name;
}


public String getPlayer_img_url() {
return player_img_url;
}


public void setPlayer_img_url(String player_img_url) {
this.player_img_url = player_img_url;
}


public String getPlayer_role() {
return player_role;
}


public void setPlayer_role(String player_role) {
this.player_role = player_role;
}


public String getPlayer_batting_style() {
return player_batting_style;
}


public void setPlayer_batting_style(String player_batting_style) {
this.player_batting_style = player_batting_style;
}


public String getPlayer_bowling_style() {
return player_bowling_style;
}


public void setPlayer_bowling_style(String player_bowling_style) {
this.player_bowling_style = player_bowling_style;
}


public String getPlayer_nationality() {
return player_nationality;
}


public void setPlayer_nationality(String player_nationality) {
this.player_nationality = player_nationality;
}


public String getPlayer_dob() {
return player_dob;
}


public void setPlayer_dob(String player_dob) {
this.player_dob = player_dob;
}

/*public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}*/








/*public Player(Long id, String team_id, String player_name, String player_img_url, String player_role,
String player_batting_style, String player_bowling_style, String player_nationality, String player_dob) {
super();
this.id = id;
this.team_id = team_id;
this.player_name = player_name;
this.player_img_url = player_img_url;
this.player_role = player_role;
this.player_batting_style = player_batting_style;
this.player_bowling_style = player_bowling_style;
this.player_nationality = player_nationality;
this.player_dob = player_dob;
}
*/
}

当我从 json 文件执行时,它只显示 json 文件的最后一个条目。 JSON 文件包含大约 150 个玩家,但在数据库中只显示玩家的最后一个条目。我认为所有数据都被覆盖了。数据库中只显示该 json 文件的最后一个条目。那是最后一个球员。数据库中只有 json 中最后一个玩家。

最佳答案

这有点难说,因为你有很多注释掉的代码,这让事情更难理解,但我认为这是因为你在 Controller 中创建 Player 的位置。既然你这样做了:

Player player = new Player()

在循环之外,Java 是通过引用值传递的,在您第一次addPlayer 之后,每次都只是用新数据更新同一个播放器。如果您只是调试代码并查看 player 在第一次保存调用后是否有 ID,则可以确认这一点。

您可能想这样做来修复它:

for (int i = 0; i < data.size(); i++) {
Player player = new Player();
// rest of your code here
}

关于mysql - 数据库正在覆盖。来自 json 的最后一个条目写入数据库,所有其他条目都被覆盖。仅显示 Json 文件的最后一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42858589/

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