Java Web - Não consigo Inserir os dados no banco

18 respostas
webjspjava
C

gente, preciso de ajuda urgente. esse projeto é pra entregar quinta feira agora.
Não estou conseguindo cadastrar as informações no banco.
alguém poderia me ajudar. estou precisando muito. se possível entre em contato [telefone removido]

18 Respostas

J

Sem o código relacionado que você tentou e o problema específico fica mais difícil alguém te ajudar.

C

é pq quando eu deixo o código ninguém responde. kkkkkkkk.
mas vou deixar o código logo abaixo.

C

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;

import beans.Psicologotratamento;
import connection.SingleConnection;

public class DaoPsicologo {

private Connection connection;

public DaoPsicologo(){
	connection = SingleConnection.getConnection();
}
public void salvarpsicologo(Psicologotratamento psicologo)throws Exception{
	
	try{
	String sql = "insert into FTC_PSICOLOGO (PSI_NOME,PSI_NASCIMENTO,PSI_CRP,PSI_SEXO,PSI_EMAIL,PSI_TELEFONE,PSI_CIDADE,PSI_ESTADO) values (?,?,?,?,?,?,?,?)";
	PreparedStatement insert = connection.prepareStatement(sql);
	insert.setString(1, psicologo.getNome());
	insert.setString(2,psicologo.getDatanascimento());
	insert.setString(3, psicologo.getCrp());
	insert.setString(4, psicologo.getSexo());
	insert.setString(5, psicologo.getEmail());
	insert.setString(6, psicologo.getTelefone());
	insert.setString(7, psicologo.getCidade());
	insert.setString(8, psicologo.getEstado());
	insert.executeQuery();
	connection.commit();
}catch (Exception e){
	connection.rollback();
}
}

}

package servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import beans.Psicologotratamento;
import dao.DaoPsicologo;

@WebServlet("/salvarpsicologo")

public class Psicologo extends HttpServlet {

private static final long serialVersionUID = 1L;
private DaoPsicologo daoPsicologo = new DaoPsicologo();
public Psicologo() {
    super();
 
}


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	response.getWriter().append("Served at: ").append(request.getContextPath());
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

	String nome = request.getParameter("nome");
	String datanascimento = request.getParameter("datanascimento");
	String crp = request.getParameter("crp");
	String sexo = request.getParameter("sexo");
	String email = request.getParameter("email");
	String telefone = request.getParameter("telefone");
	String cidade = request.getParameter("cidade");
	String estado = request.getParameter("estado");
	
	Psicologotratamento psicologo = new Psicologotratamento();
	
	psicologo.setNome(nome);
	psicologo.setDatanascimento(datanascimento);
	psicologo.setCrp(crp);
	psicologo.setSexo(sexo);
	psicologo.setEmail(email);
	psicologo.setTelefone(telefone);
	psicologo.setCidade(cidade);
	psicologo.setEstado(estado);
	
	
		
			try {
				daoPsicologo.salvarpsicologo(psicologo);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	
}

}

package beans;

public class Psicologotratamento {

private String nome;

private String datanascimento;

private String crp;

private String sexo;

private String estado;

public String getNome() {

return nome;

}

public void setNome(String nome) {

this.nome = nome;

}

public String getDatanascimento() {

return datanascimento;

}

public void setDatanascimento(String datanascimento) {

this.datanascimento = datanascimento;

}

public String getCrp() {

return crp;

}

public void setCrp(String crp) {

this.crp = crp;

}

public String getSexo() {

return sexo;

}

public void setSexo(String sexo) {

this.sexo = sexo;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public String getTelefone() {

return telefone;

}

public void setTelefone(String telefone) {

this.telefone = telefone;

}

public String getCidade() {

return cidade;

}

public void setCidade(String cidade) {

this.cidade = cidade;

}

public String getEstado() {

return estado;

}

public void setEstado(String estado) {

this.estado = estado;

}

private String email;

private String telefone;

private String cidade;

}

J

Sem o código seria pior ainda, não iriam conseguir advinhar o que você fez, ainda mais sem reportar direito a dúvida. Agora só faltou dizer qual exatamente o problema. Se possível postar a mensagem de erro, stacktrace e dizer a linha exata.

M

Bom a muito tempo não trabalho diretamente com jdbc. Mas se me recordo executeQuery é para voltado para consultas no caso de um insert usa executeUpdate. E outra vi também que você usa um controle para dar commit e roolback. Mas antes é necessário desabilitar o auto commit e iniciar uma transção.

coonection.setAutoCommit(false);
insert.executeUpdate();
C

fiz tudo isso e nada :’(
já q vi vou repetir a matéria. :confused: /

C

o console não retornar erro nenhum. porém minhas informações não estão sendo gravadas no banco.

J

Trocou executeQuery por executeUpdate como o @Matheusrfjava falou? Posta novamente como está todo aquele código agora com as modificacoes.

C

sim.
segue o código

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;

import beans.Psicologotratamento;
import connection.SingleConnection;

public class DaoPsicologo {

private Connection connection;

public DaoPsicologo(){
	connection = SingleConnection.getConnection();
}
public void salvarpsicologo(Psicologotratamento psicologo)throws Exception{
	
	try{
	String sql = "insert into FTC_PSICOLOGO (PSI_NOME,PSI_NASCIMENTO,PSI_CRP,PSI_SEXO,PSI_EMAIL,PSI_TELEFONE,PSI_CIDADE,PSI_ESTADO) values (?,?,?,?,?,?,?,?)";
	PreparedStatement insert = connection.prepareStatement(sql);
	insert.setString(1, psicologo.getNome());
	insert.setString(2,psicologo.getDatanascimento());
	insert.setString(3, psicologo.getCrp());
	insert.setString(4, psicologo.getSexo());
	insert.setString(5, psicologo.getEmail());
	insert.setString(6, psicologo.getTelefone());
	insert.setString(7, psicologo.getCidade());
	insert.setString(8, psicologo.getEstado());
	connection.setAutoCommit(false);
	insert.executeUpdate();
	connection.commit();
}catch (Exception e){
	connection.rollback();
}
}

}

C

se alguém quiser posso passar o teamview do meu pc para vocês darem uma olhada.

J

Evite esconder os erros da aplicação. Na parte abaixo você dá rollback mas continua a execução.

} catch (Exception e){
	connection.rollback();
}

Então mude para:

} catch (Exception e){
	connection.rollback();
    throw e;
}
C

eu percebi uma coisa estranha, quando eu cadastro os dados e tento dar um select no banco eu não consigo.
o banco de dados fica só buscando os registro na tabela… o banco só me retorna algo quando eu paro o tomcat.
é assim mesmo ?

J

Alguma transação ficou aberta e você não deu commit. Feche também a conexão depois que terminar o processo.

Antes de sair fazendo um projeto estude isoladamente os recursos que for usar. Comece por exemplos simples como estes:

https://www.mkyong.com/jdbc/jdbc-preparestatement-example-insert-a-record/
https://www.mkyong.com/jdbc/jdbc-transaction-example/

C

depois eu comitei e fechei a conexão apareceu esse erro.

A conversão de um tipo de dados nvarchar em um tipo de dados datetime resultou em um valor fora do intervalo.

.

C

como faço pra fazer essa conversão?
no meu formulário aparece um calendário no formato dd/mm/yyyy.

J

Não use String para trabalhar com data. Use Date/setDate.

C

Date datanascimento= request.getParameter(datanascimento);

eu fiz assim, mas está dando erro. no getParameter

C

deixa, resolvi aqui. vlw man. vc me ajudou bastante.
como faço pra dar como resolvido?

Criado 7 de junho de 2017
Ultima resposta 8 de jun. de 2017
Respostas 18
Participantes 3