if (questao.equals("op1")) {
System.out.println("");
} else if (questao.equals("op2")) {
System.out.println("");
} else if (questao.equals("op3")) {
pontuacao += usuario.getPontuacao()+ 100;
}
/* TODO output your page here. You may use following sample code. */
usuario.setPontuacao(pontuacao );
dao.ValidarResposta(usuario);
String redirectURL = "listarUsuarios.jsp";
response.sendRedirect(redirectURL);
}
}
o dao
public boolean ValidarResposta(Usuario usuario) {
String sql =
"update usuario set pontuacao=? ";
UsuarioDao usuarioDao = new UsuarioDao();
try {
PreparedStatement pst = con.prepareStatement(sql);
pst = con.prepareStatement(sql);
pst.setInt(1, usuario.getPontuacao());
pst.setString(2, usuario.getEmail());
int res = pst.executeUpdate();
if (res == 1) {
return true;
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return false;
}
A única abordagem que vejo é você fazer um select, obter a pontuação, somar no java e, então, executar o update.
É possível fazer via banco de dados ou na query, mas acho mais complicado.
darlan deu certo!
agora ele consegue somar
public boolean ValidarResposta(Usuario usuario) {
String sql =
“update usuario set pontuacao= pontuacao +1 where cpf=1234567”;
UsuarioDao usuarioDao = new UsuarioDao();
só que o problema é que eu determinei que seria esse cpf mas como eu colocaria para qualquer pessoa que logasse
Cara, você precisa parar e repensar teu sistema.
Afinal, programação não é só sair codificando, você precisa seguir um roteiro (na verdade, vários), o mais importante: atender aos requisitos do sistema.
Se você não definiu de forma clara e sustentável (que pode se manter ante a questionamentos, o teu sistema não deve ser desenvolvido.
Com relação a isso, é simples: se você tem o CPF do usuário, basta substituir o método que atualiza por algo assim
public boolean validarReposta(Usuario usuario){
String sql = "UPDATE usuario SET pontuacao = (pontuacao + 1) WHERE CPF = ?";
}
E daí setar o valor do cpf para completar a instrução.
eu fiz mas embora tenha rodado ele nao consegue se remeter a pontuacao
public Boolean existe(Usuario usuario) {
String sql=
“SELECT * FROM usuario WHERE email=’”+ usuario.getEmail() + “’ AND senha= ’ “+ usuario.getSenha()+”’”;
try {
PreparedStatement pst = con.prepareStatement(sql);
pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
Usuario a = new Usuario();
a.setEmail(rs.getString("email"));
a.setSenha(rs.getString("senha"));
}
} catch (SQLException ex) {
throw new RuntimeException (ex);
}
Fez o que?
Consegue me explicar por que o método “existe” não retorna o usuário que está logando? Aliás, por que se chama “existe” se poderia ser “login” e retornar o usuario com todos os seus dados, incluindo, CPF e pontuação atual?