StringtimeStamp=newSimpleDateFormat("yyy-MM-dd hh:mm:ss").format(Calendar.getInstance().getTime());Stringsql="INSERT INTO computador_requisicao(idusuario,nome,data_requisicao,observacao) VALUES("+Sessao.getInstancia().getUsuario().getId()+",?,"+timeStamp+",?)";try{con.setAutoCommit(false);PreparedStatementstmt=con.prepareStatement(sql);stmt.setString(1,r.getNome());stmt.setString(2,r.getMotivo());stmt.executeUpdate();stmt.close();}
error:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '07:02:11,'a')' at line 1
StringtimeStamp=newSimpleDateFormat("yyy-MM-dd hh:mm:ss").format(Calendar.getInstance().getTime());Stringsql="INSERT INTO computador_requisicao(idusuario,nome,data_requisicao,observacao) VALUES("+Sessao.getInstancia().getUsuario().getId()+",?,?,?)";try{con.setAutoCommit(false);PreparedStatementstmt=con.prepareStatement(sql);stmt.setString(1,r.getNome());stmt.setString(2,timeStamp);stmt.setString(3,r.getMotivo());stmt.executeUpdate();stmt.close();
G
guilherme-borges
Tem certeza que o formato é esse “yyy-MM-dd hh:mm:ss”? Não seria “yyyy-MM-dd hh:mm:ss”?
G
Solucao aceita
guilherme-borges1 like
Uma dica a data corrente pode ser pega direto do banco assim não tem como o usuário alterar a data do sistema. Basta fazer isso:
String sql = "INSERT INTO computador_requisicao(idusuario,nome,data_requisicao,observacao) VALUES("+Sessao.getInstancia().getUsuario().getId()+",?,now(),?)";
smatt
Não é uma boa prática concatenar a String que será mandada como query ao DB. Coloque os values todos como "?" e mande os valores pelo stmt.setString ou setInt, setDouble etc. Fica mais fácil de entender e não deixa o código tão sujo. (Fica mais profissional:upside_down_face:)
Erro de sintaxe próximo às horas que você digitou. SeuSimpleDateFormat("yyy-MM-dd hh:mm:ss") ta faltando um y referente ao ano ai kkk só tem 3 y, sendo que ano são 4 dígitos.
LostSpirit
vlw, do jeito que eu fiz funcionou normalmente também.
LostSpirit
o problema não foi essa funcionou normalmente com a mesma sintaxe, a úncia coisa que eu fiz foi tirar a concatenação e setar ele no preparedstatment, depois que fiz isso sumiu o error.
G
guilherme-borges1 like
Faça um teste mude a data do seu sistema operacional e veja se ele vai pegar a data corretamente. Normalmente o banco de dados fica em um servidor onde o usuário não tem acesso por isso falei para você passar a data corrente pelo SQL. Você entende a falha que existe no seu código?
LostSpirit
realmente mano, funcionou, vlw mesmo.
vc poderia me dar um help como eu conseguiria pegar esse valor do bd e setar em uma string?
G
guilherme-borges1 like
Normalmente quando você fizer o seu select
LostSpirit
vlw man já marquei sua resposta como certa.
se tiver como me dar um help nisso:
como eu conseguiria pegar esse valor do bd e setar em uma string?
G
guilherme-borges1 like
Você sabe buscar dados do banco?
LostSpirit
sei sim select
setDate(rs.getDate(“data_requisicao”));