Ir para conteúdo

[MySQL] Valor antigo + Valor novo


Guest ichy-wayland

Posts Recomendados

Guest ichy-wayland

Então, eu tenho a seguinte query(Ignorem as coisas de java no meio):

 

"INSERT INTO TBL_LIGHTSTATS (name,kills,money) VALUES (" + name + "," + String.valueOf(kills) + "," + money + " ) ON DUPLICATE KEY UPDATE kills=" + String.valueOf(kills) + ", money=" + money + ";"

A minha dúvida é: Como eu faço pra quando ele fizer update da query(Parte do update), kills ser igual ao valor atual + o novo?

Link para o comentário
Compartilhar em outros sites

Guest ichy-wayland
  Em 12/10/2015 em 20:09, kaway disse:

Cria uma função pra cada, 1 para INSERT, 1 para UPDATE, 1 para SELECT, ai tu só faz pegar, e somar cara, simples.

Mas e se o valor não tiver nada??

Link para o comentário
Compartilhar em outros sites

digamos que temos a void assim e pá:

public String getValue(String value){
    PreparedStatement sql = null;
    String value = null;
    try{
        sql = database.getConnection().prepareStatement("SELECT etc etc etc");
    }catch(Exception e){
    }
    return value;
}

public void insertValue(String value){
    PreparedStatement sql = null;
    try{
        sql = database.getConnection().prepareStatement("INSERT etc etc etc");
    }catch(Exception e){
    }
}

public void updateValue(String value){
    PreparedStatement sql = null;
    try{
        sql = database.getConnection().prepareStatement("UPDATE etc etc etc");
    }catch(Exception e){
    }
}

public void funcao(String value){
    if(getValue(value) == null){
        insertValue(value);
    }else{
        updateValue(value);
    }
}
Editado por kaway
Link para o comentário
Compartilhar em outros sites

é melhor você criar objeto, carregar eles, e quando for salvar, ficará mais fácil...

 

Isso ai vai dar um lag do *** no servidor, dependendo da quantidade de players...

 

...

 

User.java

public class User {
   private UUID uuid;
   private double kills;
   private double deaths;

  public User(UUID uuid, double kills, double deaths) {
    this.uuid = uuid;
    this.kills = kills;
    this.deaths = deaths;
  }

 public void addKill() {
    this.kills++;
  }

  public void addDeath() {
    this.deaths++;
  }

 public double getRatio() {
   return (kills / (kills + death));
 }
}

UserManager.java

 

public class UserManager extends BukkitRunnable implements Listener {

  private List<User> users;

 

  public UserManager() {

    this.users = new ArrayList();

  }

 

  @EventHandler

  public void onPlayerJoin(PlayerJoinEvent event) {

    User user = new User(event.getPlayer().getUniqueId(),"Carregue o valor do banco de dados","O mesmo para esse");

    users.add(user);

  }

 

  @EventHandler

  public void onPlayerQuit.... faça a mesma coisa para os proximos... Use um iterator para remover

 

  @Override

  public void run() {

    for(User user : users) {

      //salve o user no banco de dados

    }

  }

}

 

 

e faça o que você querer...

 

Para ver as estatisticas, você poderia salvar tudo numa string para acessar sem a nescessidade do banco de dados, no entanto, se querer, pode pegar direto do banco de dados...

Link para o comentário
Compartilhar em outros sites

Guest ichy-wayland

Vamos dizer que eu acabei com isso:

 

 

  Mostrar conteúdo oculto

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...