Sql

4 respostas
M
import <a href="http://java.io">java.io</a>.<em>;

import javax.servlet.</em>;

import javax.servlet.http.<em>;

import java.util.</em>;

import java.sql.<em>;

import java.awt.</em>;

public class Cadastro extends HttpServlet
{

public void service(ServletRequest request,ServletResponse response)throws ServletException, IOException
{
	PrintWriter out=response.getWriter();

	String nome=request.getParameter("nome");
	String pass=request.getParameter("email");
	String name=request.getParameter("psw");
	String password=request.getParameter("repete");

	int i=0;

		try{
			Connection cn1 = null; //abrir a base de dados
			PreparedStatement stm1 = null; // para correr no query
			ResultSet rs1 = null; //para carregar os dados			
			Class.forName("com.mysql.jdbc.Driver");
			cn1 = DriverManager.getConnection("jdbc:mysql://localhost/sistema?user=root&password=");
			//stm1 = cn1.createStatement();

			String sql = "insert into cadastro (nome,email,psw,repete) values (?,?,?,?)"; //  where user=? and pass=?"

			stm1 = cn1.prepareStatement(sql);
			stm1.setString(1, "zotica");
			stm1.setString(2, "[email removido]");
			stm1.setString(3, "zozo");
			stm1.setString(4, "zozo");

			rs1 = stm1.executeUpdate();

			if(rs1.next()){
				//out.println("<h1>PASSWORD OR USER IS CORRECET</h1>");
				//request.getRequestDispatcher("/up/welcome.jsp").forward(request, response);
				HttpServletResponse httpServletResponse = (HttpServletResponse) response;
				httpServletResponse.sendRedirect("/up/Welcome.jsp");
				

			}else{
				out.println("<html>");
				out.println("<body>");
				out.println("<h1>PASSWORD OR USER IS INCORRECET</h1>");
				out.println("</body>");
				out.println("</html>");
				//request.getRequestDispatcher("/up/Index.jsp").forward(request, response);
			}

		}catch(Exception ex){

				out.println("<h1>ERRO!!!'"+ex+"'</h1>");

		}



}
}

o erro: incompatible types: int cannot be converted to ResultSet

rs1 = stm1.executeUpdate();

4 Respostas

Lucas_Camara

Você não pode fazer isso:

rs1 = stm1.executeUpdate();

O método executeUpdate retorna a quantidade de linhas que foram afetadas, ou seja, um número.

M

significa que ai tinha que ser um executeQuery?

M

quando coloco executeQuery da esse erro:

ERRO!!!‘java.sql.SQLException: Can not issue data manipulation statements with executeQuery().’

Lucas_Camara

A questão é que vc soh deve usar ResultSet quando executar algum select. No seu caso, vc está executando um insert e deve ser um executeUpdate mesmo, e que vai retornar a quantidade de linhas inseridas.

Seu código poderia ser assim:

int totalRegistrosInseridos = stm1.executeUpdate();

if(totalRegistrosInseridos > 0) {
    // seu código aqui
}
Criado 3 de julho de 2020
Ultima resposta 3 de jul. de 2020
Respostas 4
Participantes 2