Minha classe Servlet Mensagem nao conecta no banco

3 respostas
java
Murilo_Medeiros

Bom dia galera,

estou tentando pegar o valor da variavel que recebo do formulario e setar ele no banco, mas ele se quer conecta ao banco pelo servlet, meu problema vai ser melhor entendido aqui: https://youtu.be/GMCZrLKWm_0

Codigo:

package br.com.adsdw.controller;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

public class VerificaConexao extends JFrame{

private static final long serialVersionUID = 1L;

private JButton bVerificaConexao;
public VerificaConexao() {
	setTitle("Verifica Conexão");
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	setLayout(null);
	setBounds(200, 200, 300, 120);
	bVerificaConexao = new JButton("Verifica Conexao");
	bVerificaConexao.setBounds(70, 35, 150, 30);
	bVerificaConexao.addActionListener(new ActionListener() {
		
		@Override
		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			Produto prod = new Produto();
			ConnectionFactory conexao = new ConnectionFactory();		
			ProdutoDAO prodDAO = new ProdutoDAO(conexao);
			conexao.getConnectionFactory();
			JOptionPane.showMessageDialog(null, conexao.statusConection());
			
			prod.setDESCRICAO("JESSE");
	     	prod.setAPLICACAO("Java");
	        prod.setCodigo(19);
	        
	        try{
	        	prodDAO.cadastrar(prod);
	        }catch (Exception e) {
				// TODO: handle exception
			}
		
		}
	});
	add(bVerificaConexao);
	setVisible(true);
}

public static void main(String[] args) {
	// TODO Auto-generated method stub
	new VerificaConexao();
	
}

}

package br.com.adsdw.controller;

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.SQLException;
import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;
@WebServlet("/mensagem")

public class ServletMensagem extends HttpServlet {

private static final long serialVersionUID = 1L;
public String parameter;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	ConnectionFactory conexao = new ConnectionFactory();
	Produto prod = new Produto();
	ProdutoDAO prodDAO = new ProdutoDAO(conexao);
	conexao.getConnectionFactory();
	
	PrintWriter out = response.getWriter();
    String sNome = request.getParameter("formNome");
    
	prod.setDESCRICAO(sNome);
 	prod.setAPLICACAO(sNome);
    prod.setCodigo(19);
    
    try{
    	prodDAO.cadastrar(prod);

	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
    
    
    out.print("<html><body><b>Nome informado:</b> " + sNome);
    out.print("<br><a href='index.html'>Voltar</a><br><br>");
    // response.getWriter().append("Served at: ").append(request.getContextPath());               
    out.print("</body></html>");
    out.close();
}

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

}

package br.com.adsdw.controller;

import java.sql.PreparedStatement;

public class ProdutoDAO {
private ConnectionFactory con; //CONEXAO QUE SERA USADO NOS METODOS ABAIXO

public ProdutoDAO(ConnectionFactory con) {
	this.con = con;
}
public void cadastrar(Produto produto) throws Exception{
	String sql = "update produto p set p.DESCRICAO = ?, p.APLICACAO = ? where p.codigo = ?";
	PreparedStatement p = con.getConnectionFactory().prepareStatement(sql);
	p.setString(1,produto.getDESCRICAO());
	p.setString(2,produto.getAPLICACAO());
	p.setInt(3, produto.getCodigo());
	p.executeUpdate();
	p.close();
}

}

package br.com.adsdw.controller;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

public class ConnectionFactory {
public String status = “Não conectado…”;

public ConnectionFactory(){
	this.getConnectionFactory();
}

public java.sql.Connection getConnectionFactory(){
	Connection connection = null;
	
	try {
		String ServerName = "localhost";
		String Porta = "3050";
		String MyDatabase = "D:\\BD\\guara.fdb";
		String Url = "jdbc:firebirdsql:" + ServerName + "/" + Porta + ":" + MyDatabase;
		String User = "SYSDBA";
		String Senha = "cinco.25";
		
		connection = DriverManager.getConnection(Url, User, Senha);
		
		if (connection != null){
			status = ("CONECTADO COM SUCESSO");				
		}
		else {
			status = ("Conexao falhou");
		}
		return connection;
		
	} catch (SQLException e) {
		System.out.println("Nao foi possivel conectar");
		return null;
	}
}

public String statusConection(){
	return this.status;
}

}

3 Respostas

B

não deveria ser ao contrário

conexao.getConnectionFactory();

ProdutoDAO prodDAO = new ProdutoDAO(conexao);

Murilo_Medeiros

Boa tarde amigo!

inverti a ordem e continua mesmo problema!

Nao foi possivel conectar

java.lang.NullPointerException

at br.com.adsdw.controller.ProdutoDAO.cadastrar(ProdutoDAO.java:13)

at br.com.adsdw.controller.ServletMensagem.doGet(ServletMensagem.java:35)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)
Murilo_Medeiros

Se tiver alguma forma de herdar o valor da sNome em outra classe me informem por favor!!!

Criado 24 de agosto de 2017
Ultima resposta 24 de ago. de 2017
Respostas 3
Participantes 2