Não consigo gravar no banco usando postgresql + jsp + servlet

4 respostas
java
M
Boa tarde, preciso de uma ajuda nesse código abaixo quem puder me da uma luz agradeço, pois não grava no banco <strong>os campos webconferencia e streaming</strong>

<strong>segue o trecho do contato.dao:</strong>

public void adicionadefesamt(ContatoDefesa contato_d)throws SQLException{

PreparedStatement stmt=this.connection.prepareStatement(insert into defesa(local,apoio,data,horario,candidato,webconferencia,streaming,valordabanca)values(?,?,?,?,?,?,?,?));

stmt.setInt(1, contato_d.getLocal());

stmt.setInt(2, contato_d.getApoio());

stmt.setDate(3, contato_d.getData());

stmt.setTime(4, contato_d.getHorario());

stmt.setInt(5, contato_d.getCandidato());

stmt.setString(6, contato_d.getWebconferencia());

stmt.setString(7, contato_d.getStreaming());

stmt.setInt(8,contato_d.getValordaBanca());

stmt.execute();

stmt.close();

<strong>no servlet esta assim:</strong>

package br.direito.defesas.servlet;
import java.io.IOException;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Time;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.TimeZone;
import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;
import br.direito.defesas.ConnectionFactory;

import br.direito.defesas.ContatoDefesa;

import br.direito.defesas.ContatoLog;

import br.direito.defesas.ContatoSubbanca;

import br.direito.defesas.dao.ContatoDAO;

//Servlet de inclusão de Banca de Defesa Mestrado, dados vem do form_cad_banca_mt.js

@SuppressWarnings(serial)

public class BdInclusaoDefesaMt extends HttpServlet {

private Connection connection;

static Integer idc;

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
java.text.SimpleDateFormat formato = new java.text.SimpleDateFormat("dd/MM/yyyy"); 
	
	Integer valorb = null;
	
	Date datac = null;
/** Recebe informações do formulário*/

String nuspx=request.getParameter(txtNusph);

Integer nusp=Integer.parseInt(nuspx);

String localx=request.getParameter(selectLocal);

Integer local=Integer.parseInt(localx);

String apoiox=request.getParameter(selectApoioVisual);

Integer apoio=Integer.parseInt(apoiox);

String datax=request.getParameter(txtData);

String horariox=request.getParameter(txtHorario);

String horario= horariox+ :00;

String webconferencia=request.getParameter(txtwebconferencia);

String streaming=request.getParameter(txtstreaming);
Time hora=Time.valueOf(horario);
	String professor0x=request.getParameter("select0");
	Integer professor0=Integer.parseInt(professor0x);
	String professor1x=request.getParameter("select2");
	Integer professor1=Integer.parseInt(professor1x);
	String professor2x=request.getParameter("select3");
	Integer professor2=Integer.parseInt(professor2x);
	String professor3x=request.getParameter("select4");
	String professor3xx;
	
	if(professor3x.equals("Escolha o Professor")){
		professor3xx="0";
	}else{
		professor3xx=professor3x;
	}
	
	Integer professor3=Integer.parseInt(professor3xx);
//		trecho de inclusão no log	

HttpSession sessaox = request.getSession(true);

String usuariox= String.valueOf(sessaox.getAttribute(usuario));
//Horário correto- verão
	SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");  
	Calendar calendar = GregorianCalendar.getInstance();  
	dateFormat.setTimeZone(TimeZone.getTimeZone("Etc/GMT+2"));  

	String datalog = String.valueOf(dateFormat.format(calendar.getTime()));
	String o_q_e_aonde = "Incl_Def_MT NUSP: "+nusp;
	
	ContatoLog col_log = new ContatoLog();
	
	col_log.setUsuariolog(usuariox);
	col_log.setDatalog(datalog);
	col_log.setO_q_e_aonde(o_q_e_aonde);

// termina trecho de inclusão no log

try {  
	     datac = formato.parse(datax);
	} catch (java.text.ParseException e) {  
	       e.printStackTrace();  
	}  
	java.sql.Date data = new java.sql.Date(datac.getTime()); 

	try{
		this.connection= ConnectionFactory.getConnection();
		PreparedStatement stmt= this.connection.prepareStatement("SELECT * FROM candidatos where nusp="+ nusp);
		ResultSet rs=stmt.executeQuery();
		
		PreparedStatement stmt2=this.connection.prepareStatement("SELECT * FROM valorbanca ORDER BY idvalorbanca desc limit 1 ");
		ResultSet rs2=stmt2.executeQuery();
		
		while(rs.next()){
			idc = rs.getInt("idc");
		
			while(rs2.next()){
				valorb=rs2.getInt("idvalorbanca");
				
			}
			
			ContatoDefesa contato_d = new ContatoDefesa();
			contato_d.setData(data);
			contato_d.setHorario(hora);
			contato_d.setLocal(local);
			contato_d.setApoio(apoio);
			contato_d.setCandidato(idc);
			contato_d.setValordaBanca(valorb);
			contato_d.setWebconferencia(webconferencia);
			contato_d.setStreaming(streaming);
			ContatoDAO dao = null;
			
			try{
				dao= new ContatoDAO();
				dao.adicionadefesamt(contato_d);
				dao.adiciona_log(col_log);  //inclusão no log
			}catch(SQLException e){
				e.printStackTrace();
			}
			
		}
		rs2.close();
		stmt2.close();
		
		rs.close();
		stmt.close();
	}catch(SQLException e){
		e.printStackTrace();
	}
		
	try{	
		this.connection= ConnectionFactory.getConnection();
		PreparedStatement stmt= this.connection.prepareStatement("SELECT * FROM defesa where candidato=" + idc);
		ResultSet rs=stmt.executeQuery();
		
		while(rs.next()){
			Integer numero= rs.getInt("numero");
										
			ContatoSubbanca contato_sb = new ContatoSubbanca();
			contato_sb.setDefesa(numero);
			contato_sb.setNumero_professor(professor0);
			
			ContatoDAO dao = null;
							
			try{
				dao= new ContatoDAO();
				dao.adicionasubbanca(contato_sb);
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
		rs.close();
		stmt.close();	
	}catch(SQLException e){
		e.printStackTrace();
	}
	try{	
		this.connection= ConnectionFactory.getConnection();
		PreparedStatement stmt= this.connection.prepareStatement("SELECT * FROM defesa where candidato=" + idc);
		ResultSet rs=stmt.executeQuery();
		
		while(rs.next()){
			Integer numero= rs.getInt("numero");
										
			ContatoSubbanca contato_sb = new ContatoSubbanca();
			contato_sb.setDefesa(numero);
			contato_sb.setNumero_professor(professor1);
			
			ContatoDAO dao = null;
							
			try{
				dao= new ContatoDAO();
				dao.adicionasubbanca(contato_sb);
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
		rs.close();
		stmt.close();	
	}catch(SQLException e){
		e.printStackTrace();
	}
			
	try{
		this.connection= ConnectionFactory.getConnection();
		PreparedStatement stmt=this.connection.prepareStatement("SELECT * from defesa where candidato=" +idc);
		ResultSet rs=stmt.executeQuery();
		
		while(rs.next()){
			Integer numero= rs.getInt("numero");
			
			ContatoSubbanca contato_sb = new ContatoSubbanca();
			contato_sb.setDefesa(numero);
			contato_sb.setNumero_professor(professor2);
			
			ContatoDAO dao = null;								
			try{
				dao= new ContatoDAO();
				dao.adicionasubbanca(contato_sb);
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
		rs.close();
		stmt.close();	
	}catch(SQLException e){
		e.printStackTrace();
	}
	if(!professor3x.equals("Escolha o Professor")){
		try{
			this.connection= ConnectionFactory.getConnection();
			PreparedStatement stmt=this.connection.prepareStatement("SELECT * from defesa where candidato=" +idc);
			ResultSet rs=stmt.executeQuery();
		
			while(rs.next()){
				Integer numero= rs.getInt("numero");
			
				ContatoSubbanca contato_sb = new ContatoSubbanca();
				contato_sb.setDefesa(numero);
				contato_sb.setNumero_professor(professor3);
			
				ContatoDAO dao = null;								
				try{
					dao= new ContatoDAO();
					dao.adicionasubbanca(contato_sb);
				}catch(SQLException e){
					e.printStackTrace();
				}
			}
			rs.close();
			stmt.close();	
		}catch(SQLException e){
			e.printStackTrace();
		}
	}	

	response.sendRedirect("lista_bancas_impressao.jsp"); 
}
}

<strong>e no jsp seria:</strong>

<%@ page import=java.util.<em>,br.direito.defesas.</em>,br.direito.defesas.dao.*” %>

<%@ taglib uri=<a href="http://java.sun.com/jsp/jstl/core">http://java.sun.com/jsp/jstl/core</a>” prefix=“c” %>
Cadastro de Bancas <%@ include file="topo.jsp" %>

Defesa de Dissertação de Mestrado

<table width="780" border="0" bordercolor="#333333">
	<!--DWLayoutTable-->

<jsp:useBean id=“dao” class=“br.direito.defesas.dao.ContatoDAO” />
<c:forEach var=“contatocandidatos” items="${dao.lista_cx}">

<tr>
	  <td><font size="-2" face="Arial, Helvetica, sans-serif">Nome:</font></td>
	  <td><input name="txtNome" type="text" size="67" maxlength="80" value='${contatocandidatos.nome_aluno}' disabled="true"/></td>
	</tr>
	<br>
	<tr>
	  <td><font size="-2" face="Arial, Helvetica, sans-serif">NUSP:</font></td>
	  <td><input name="txtNusp" type="text" size="20" maxlength="20" value='${contatocandidatos.nusp}' disabled="true" /></td>
	</tr>
	<br>
	<tr>
	  <td><font size="-2" face="Arial, Helvetica, sans-serif"><font></td>
      <td><input name="txtNusph" type="hidden" value='${contatocandidatos.nusp}'/></td>
	</tr>
	<br>
	<tr>
	  <td><font size="-2" face="Arial, Helvetica, sans-serif">Título:</font></td>
	  <td><textarea name="txtTitPro" cols="50" disabled="true">${contatocandidatos.titulo}</textarea></td>
	</tr>
	<br>
	<tr>
	  <td><font size="-2" face="Arial, Helvetica, sans-serif">Data:</font></td>
  	  <td><input name="txtData" type="text" size="14" maxlength="14" onKeyUp="barra(this)"/></td>
    </tr>
	<br>
	<tr>
	  <td><font size="-2" face="Arial, Helvetica, sans-serif">Local:</font></td>
  	  <td>
	        <select name='selectLocal'>
      			<option>Escolha o Local</option>
      			<c:forEach var="contatolocal" items="${dao.lista_lo}">
      				<font size= 1>
        				<option value=${contatolocal.idl} >${contatolocal.descricao}</option>
      				</font>
      			</c:forEach>
			</select>
  	  </td>
	 </tr>
	 <br>
	 <tr>
  		<td><font size="-2" face="Arial, Helvetica, sans-serif">Tipo de Apoio:</font></td>
  		 <td>   <select name='selectApoioVisual'>
  		        <option>Escolha Tipo de Apoio</option>
  		            <c:forEach var="apoiovisual" items="${dao.lista_ApoioVisual}">
				  <font size= 1>
  		             <option value=${apoiovisual.id} > ${apoiovisual.visual}</font> </option>
  		            </c:forEach>
            </select>
		 </td>
		</td>
	</tr> 
    <br>		
	<tr>
        <td><font size="-2" face="Arial, Helvetica, sans-serif">Horário:</font></td>
  		<td><input name="txtHorario" type="text" id="Hora" onKeyUp="Mascara_Hora(this.value,this)" size="14" maxlength="5" /></font></td>
	</tr>
	<tr>
	   <td><font size="-2" face="Arial, Helvetica, sans-serif">WebConferência:</font></td>
  	   <td><input name="txtwebconferencia" type="text" id="webconferencia" size="100" maxlength="200" /></font></td>
	</tr>
	<br>
	<tr>
	   <td><font size="-2" face="Arial, Helvetica, sans-serif">Streaming:</font></td>
  	   <td><input name="txtstreaming" type="text" id="streaming" size="100" maxlength="200" /></font></td>
	</tr>
	<br>
    <tr>
    	<td height="44" colspan="5" valign="top"> &nbsp;<div align="center"><font size="-2" face="Arial, Helvetica, sans-serif">Orientador:</font>
        	<select name='select0'>
          		<option>Escolha o Orientador</option>
          		<c:forEach var="contatoprofessores" items="${dao.lista_p}">
          			<font size= 1>
            			<option value=${contatoprofessores.idp}>${contatoprofessores.nome_professor} </option>
            		</font>
            	</c:forEach>
          	</select></div>
        </td>   
	</tr>
	</c:forEach>
	<tr>
  		<td height="21" colspan="2" valign="top"></td>    
  		<td width="124"></td>    
  		<td width="111"></td>      
  		<td></td>      
	</tr>
	<tr>
		<td height="26" colspan="5" valign="top"> <div align="center">
			<strong>
				Banca
			</strong></div>
		</td>
	</tr>
 	<tr>
  		<td valign="middle" colspan="5">
  			<div align="center">
  			1-
  	  		<select name='select2'>
  	    		<option>Escolha o Professor</option>
  	    			"<c:forEach var="contatoprofessores" items="${dao.lista_p}">
  	      				<font size= 1>
  	        				<option value=${contatoprofessores.idp}>${contatoprofessores.nome_professor}</option>
  	      				</font>
  	      			</c:forEach>
        	</select>
			</div>
		</td>
	</tr>
 	<tr>	
		<td valign="middle" colspan="5">
  			<div align="center"> 
  	  		2-
  	  		<select name='select3'>
  	  			<option>Escolha o Professor</option>
  	  				<c:forEach var="contatoprofessores" items="${dao.lista_p}">
  	    				<font size= 1>
  	        				<option value=${contatoprofessores.idp}>${contatoprofessores.nome_professor} </option>
  	    				</font>
  	    			</c:forEach>
	  		</select>
			</div>
		</td>
	</tr>
 	<tr>	
		<td valign="middle" colspan="5">
  			<div align="center"> 
	  		3-Novo
  	  		<select name='select4'>
  	  			<option>Escolha o Professor</option>
  	  				<c:forEach var="contatoprofessores" items="${dao.lista_p}">
  	    				<font size= 1>
  	        				<option value=${contatoprofessores.idp}>${contatoprofessores.nome_professor} </option>
  	    				</font>
  	    			</c:forEach>
	  		</select>
            </div>
        </td>
	</tr>

	<tr>
  		<td height="31" colspan="5" valign="top"> <div align="center">
  			<font face="Arial, Helvetica, sans-serif"> 
    			<input type="reset" name="Reset" value="Apagar" />
    			<input type="submit" name="Submit2" value="Enviar dados" />
      		</font></div>
      	</td>
	</tr>
</table>

<p><strong></strong></p>
</form>

também o bean:
package br.direito.defesas;

import java.sql.Date;

import java.sql.Time;

import java.sql.Timestamp;
public class ContatoDefesa extends Contato{

private Integer numero;

private Integer local;

private Date data;

private Time horario;

private Integer candidato;

private Integer valordabanca;

private Integer apoio;

private String webconferencia;

private String streaming;
public Integer getValordabanca() {
	return valordabanca;
}
public void setValordabanca(Integer valordabanca) {
	this.valordabanca = valordabanca;
}
public String getWebconferencia() {
	return webconferencia;
}
public void setWebconferencia(String webconferencia) {
	this.webconferencia = webconferencia;
}
public String getStreaming() {
	return streaming;
}
public void setStreaming(String streaming) {
	this.streaming = streaming;
}
public void setValordaBanca(Integer valordabanca){
	this.valordabanca=valordabanca;
	
}
public Integer getValordaBanca(){
	return valordabanca;
}

public void setNumero(Integer numero){
	this.numero=numero;
}
public Integer getNumero(){
	return numero;
}

public Date getData() {
	return data;
}
public void setData(Date data2) {
	this.data = data2;
}
public Time getHorario() {
	return horario;
}
public void setHorario(Time horario) {
	this.horario = horario;
}
public Integer getLocal() {
	return local;
}
public void setLocal(Integer local) {
	this.local = local;
}
public Integer getApoio() {
	return apoio;
}
public void setApoio(Integer apoio) {
	this.apoio = apoio;
}
public void setCandidato(Integer candidato){
	this.candidato=candidato;
}

public Integer getCandidato(){
	return candidato;
}
public void setHorario(Timestamp hora) {
	// TODO Auto-generated method stub
	
}

}

4 Respostas

I

Certo. Apresenta algum erro/exceção?

M

Então não apresenta erro/exceção os campos no banco não são obrigatórios
Ele grava todos exceto o campo webconferência e streaming

Grato por responder

I

Você verificou se todos os dados estão chegando? Por exemplo, para testar, pode fazer algo como:

System.out.println(contato_d.getStreaming() + " - " + contato_d.getWebConfetencia()); na primeira linha do método adicionaDefesaMt.

Obs.: não está usando a convenção CamelCase para nomes?

M

Então eu já usei o debug e dando f5 no eclipse
Ele veio sim porém algo acontece que não grava
Vou tentar o que vc falou colocar essa linha na primeira linha e te digo depois
E mais uma vez agradecido

Criado 15 de abril de 2020
Ultima resposta 15 de abr. de 2020
Respostas 4
Participantes 2