Fórum ex: org.springframework.jdbc.BadSqlGrammarException #535233
22/10/2015
0
ERROR br.com.devmedia.appfinal.web.controller.GenericExceptionController:49 - Request: /app-final_Falta/falta/save lançou a ex: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [UPDATE faltas SET falta = ?, SET nome = ?, id_funcionario = ?, motivo = : motivo WHERE id_falta = ?]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET nome = null, id_funcionario = 1, motivo = : motivo WHERE id_falta = 1' at line 1
Esmeraldina Silva
Curtir tópico
+ 0Posts
22/10/2015
Jothaz
Troque:
UPDATE faltas SET falta = ?, SET nome = ?, id_funcionario = ?, motivo = : motivo WHERE id_falta = ?
Por:
UPDATE faltas SET falta = ?, SET nome = ?, id_funcionario = ?, motivo = ? WHERE id_falta = ?
Se você esta usando um exemplo pronto, verifique a sintaxe.
Gostei + 0
22/10/2015
Esmeraldina Silva
Agora descobri outro problema em outra aplicação. Informo todos os dados na tela e clico no botão salvar, não aparece nenhuma mensagem, mas simplesmente não grava nada na tabela. Alguém pode me dar uma dica?
Gostei + 0
22/10/2015
Jothaz
Gostei + 0
22/10/2015
Esmeraldina Silva
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Funcionários</title>
<link rel="stylesheet" type="text/css" href="<c:url value="/css/style.css"/>">
<script type="text/javascript" src="<c:url value="/js/functions.js" />"></script>
</head>
<body>
<c:import url="menu.jsp" />
<fieldset class='master'>
<c:url var="save" value="/funcionario/save" />
<form:form modelAttribute="funcionario" action="$" method="post">
<form:errors cssClass="errorblock" path="*" element="div"/>
<form:hidden path="idFuncionario" />
<fieldset class='grupo'>
<legend> Funcionário </legend>
<div class='campo'>
<form:label path="nome">Nome</form:label>
<br>
<form:input path="nome" type="text" size='40' id="nome" />
</div>
<div class='campo'>
<form:label path="salario">Salario</form:label>
<br>
<form:input path="salario" type="text" size='20' />
</div>
<div class='campo'>
<form:label path="dataEntrada">Data de Entrada</form:label>
<br>
<form:input path="dataEntrada" type="date" />
</div>
<div class='campo'>
<form:label path="dataSaida">Data de Saída</form:label>
<br>
<form:input path="dataSaida" type="date" />
</div>
<div class='campo'>
<form:label path="dataNasc">Data de Nascimento</form:label>
<br>
<form:input path="dataNasc" type="date" />
</div>
<div class='campo'>
<form:label path="rg">CI</form:label>
<br>
<form:input path="rg" type="text" size='10' />
</div>
<div class='campo'>
<form:label path="orgao">Órgão</form:label>
<br>
<form:input path="orgao" type="text" size='10' />
</div>
<div class='campo'>
<form:label path="dataExp">Expedição</form:label>
<br>
<form:input path="dataExp" type="date" />
</div>
<div class='campo'>
<form:label path="cpf">CPF</form:label>
<br>
<form:input path="cpf" type="text" size='14' />
</div>
<div class='campo'>
<form:label path="pai">Pai</form:label>
<br>
<form:input path="pai" type="text" size='30' />
</div>
<div class='campo'>
<form:label path="mae">Mãe</form:label>
<br>
<form:input path="mae" type="text" size='30' />
</div>
<div class='campo'>
<form:label path="email">E-mail</form:label>
<br>
<form:input path="email" type="text" size='30' />
</div>
<div class='campo'>
<form:label path="tel1">Tel Residencial</form:label>
<br>
<form:input path="tel1" type="text" size='10' />
</div>
<div class='campo'>
<form:label path="tel2">Tel Comercial</form:label>
<br>
<form:input path="tel2" type="text" size='10' />
</div>
<br>
<div class='campo'>
<form:label path="tel3">Celular</form:label>
<br>
<form:input path="tel3" type="text" size='10' />
</div>
<div class='campo'>
<form:label path="naturalidade">Naturalidade</form:label>
<br>
<form:input path="naturalidade" type="text" size='10' />
</div>
<div class='campo'>
<form:label path="nacionalidade">Nacionalidade</form:label>
<br>
<form:input path="nacionalidade" type="text" size='10' />
</div>
<div class='campo'>
<form:label path="estadocivil">Estado Civil</form:label>
<br>
<form:input path="estadocivil" type="text" size='10' />
</div>
<div class='campo'>
<form:label path="filho1">Filho</form:label>
<br>
<form:input path="filho1" type="text" size='30' />
</div>
<div class='campo'>
<form:label path="filho2">Filho</form:label>
<br>
<form:input path="filho2" type="text" size='30' />
</div>
<div class='campo'>
<form:label path="filho3">Filho</form:label>
<br>
<form:input path="filho3" type="text" size='30' />
</div>
<div class='campo'>
<form:label path="ctps">CTPS</form:label>
<br>
<form:input path="ctps" type="text" size='10' />
</div>
<div class='campo'>
<form:label path="serie">Série</form:label>
<br>
<form:input path="serie" type="text" size='5' />
</div>
<div class='campo'>
<form:label path="pis">PIS</form:label>
<br>
<form:input path="pis" type="text" size='20' />
</div>
<div class='campo'>
<form:label path="titulo">Título</form:label>
<br>
<form:input path="titulo" type="text" size='15' />
</div>
<div class='campo'>
<form:label path="zona">Zona</form:label>
<br>
<form:input path="zona" type="text" size='5' />
</div>
<div class='campo'>
<form:label path="secao">Seção</form:label>
<br>
<form:input path="secao" type="text" size='5' />
</div>
<div class='campo'>
<form:label path="vrefeicao">Vale Refeição?</form:label>
<br>
<form:input path="vrefeicao" type="text" size='1' />
</div>
<div class='campo'>
<form:label path="vtransporte">Vale Transporte?</form:label>
<br>
<form:input path="vtransporte" type="text" size='1' />
</div>
<div class='campo'>
<form:label path="escolaridade">Escolaridade</form:label>
<br>
<form:input path="escolaridade" type="text" size='15' />
</div>
<div class='campo'>
<form:label path="carthabilitacao">Cart.Motorista</form:label>
<br>
<form:input path="carthabilitacao" type="text" size='15' />
</div>
<div class='campo'>
<form:label path="problemasaude">Problema Saúde?</form:label>
<br>
<form:input path="problemasaude" type="text" size='1' />
</div>
<input type="button" value="Localizar" onclick="localizarPorNome();">
</fieldset>
<fieldset class='grupo'>
<legend> Cargo </legend>
<div class='campo'>
<form:label path="cargo">Cargo</form:label>
<br>
<form:select id="cargo" path="cargo">
<form:option value="" label="--- Select ---" />
<form:options items="$" itemValue="idCargo"
itemLabel="cargo" />
</form:select>
<input type="button" onclick="localizarPorCargo();"
value="Localizar">
</div>
</fieldset>
<br>
<fieldset class="grupo">
<form:hidden path="endereco.idEndereco" />
<legend> Endereço </legend>
<div class='campo'>
<form:label path="endereco.logradouro">Logradouro</form:label>
<br>
<form:input path="endereco.logradouro" type="text" size='30' />
<form:errors cssClass="error" path="endereco.logradouro" element="div"/>
</div>
<div class='campo'>
<form:label path="endereco.numero">Número</form:label>
<br>
<form:input path="endereco.numero" type="text" size='9' />
<form:errors cssClass="error" path="endereco.numero" element="div"/>
</div>
<div class='campo'>
<form:label path="endereco.complemento">Complemento</form:label>
<br>
<form:input path="endereco.complemento" type="text" size='30' />
<div> </div>
</div>
<div class='campo'>
<form:label path="endereco.bairro">Bairro</form:label>
<br>
<form:input path="endereco.bairro" type="text" size='30' />
<form:errors cssClass="error" path="endereco.bairro" element="div"/>
</div>
<div class='campo'>
<form:label path="endereco.cidade">Cidade</form:label>
<br>
<form:input path="endereco.cidade" type="text" size='20' />
<form:errors cssClass="error" path="endereco.cidade" element="div"/>
</div>
<div class='campo'>
<form:label path="endereco.estado">Estado</form:label>
<br>
<form:input path="endereco.estado" type="text" size='2' />
<form:errors cssClass="error" path="endereco.estado" element="div"/>
</div>
</fieldset>
<br>
<div>
<input type="submit" value="Salvar"> <input type="reset"
value="Limpa">
</div>
</form:form>
</fieldset>
<fieldset class='master'>
<legend>Funcionários</legend>
<table style="width: 960px;">
<tr>
<th>Código</th>
<th>Nome</th>
<th>Salário</th>
<th>Data de Entrada</th>
<th>Data de Saída</th>
<th>Cargo</th>
<th>Ação</th>
</tr>
<c:forEach var="f" items="$" varStatus="i">
<tr bgcolor='${i.count % 2 != 0 ? '#f1f1f1' : 'white'}'>
<td>${f.idFuncionario}</td>
<td>${f.nome}</td>
<td><fmt:formatNumber value="${f.salario}" currencySymbol="R$"
maxFractionDigits="2" type="currency" /></td>
<td><fmt:parseDate var="dtEntrada" value="${f.dataEntrada}"
pattern="yyyy-MM-dd" /> <fmt:formatDate value="$"
dateStyle="full" /></td>
<td><fmt:parseDate var="dtSaida" value="${f.dataSaida}"
pattern="yyyy-MM-dd" /> <fmt:formatDate value="$" /></td>
<td>${f.cargo.cargo}</td>
<td><c:url var="update"
value="/funcionario/update/${f.idFuncionario}"></c:url> <a
href="$" title="Ver/Editar">ⓥ</a> | <c:url
var="delete" value="/funcionario/delete/${f.idFuncionario}"></c:url>
<a href="$" title="Delete">ⓧ</a></td>
</c:forEach>
</table>
</fieldset>
</body>
</html>Gostei + 0
22/10/2015
Jothaz
Gostei + 0
22/10/2015
Esmeraldina Silva
public int update(Funcionario funcionario) {
String dataSaida = "";
if (funcionario.getDataSaida() != null) {
dataSaida = "data_saida = :dataSaida, ";
}
String sql = "UPDATE funcionarios "
+ "SET " + dataSaida
+ "nome = :nome, salario = :salario, id_cargo = :idCargo, "
+ "id_endereco = :idEndereco, data_entrada = :dataEntrada, "
//
+ "dtnasc = :dataNasc, rg = :Rg, orgao = :Orgao, exp = :dataExp, "
+ "cpf = :Cpf, mae = :Mae, pai = :Pai,email = :Email, "
+ "tel1 =:Tel1,tel2 =:Tel2,tel3 =:Tel3,naturalidade = :Naturalidade, "
+ "nacionalidade = :Nacionalidade,estadocivil = :Estadocivil, "
+ "filho1 =:Filho1, filho2 =:Filho2, filho3 =:Filho3,ctps = :Ctps, "
+ "serie = :Serie,pis = :Pis,titulo = :Titulo,zona = :Zona, "
+ "secao =:Secao,vrefeicao =:Vrefeicao,vtransporte =:Vtransporte, "
+ "escolaridade =:Escolaridade,carthabilitacao =:Carthabilitacao, "
+ "problemasaude =:Problemasaude "
+ "WHERE id_funcionario = :idFuncionario";
return super.update(sql, parameterSource(funcionario));Gostei + 0
22/10/2015
Esmeraldina Silva
Gostei + 0
23/10/2015
Esmeraldina Silva
Já revisei tudo a respeito deste campo 'dtnasc' e não consegui ver nada de errado. ´Me dá aí uma dica?
A aplicação está alterando e excluido, mas na inclusão não tá gravando e não dá nenhuma mensagem em tempo de execução. No console verifiquei esse erro.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)