Pessoal, bom dia!
Parei de desenvolver em meados de 2009 e estou tentando voltar agora… “tá dificil”… rs
Se for possível, preciso da ajuda de vocês.
Estou com o Eclipse Kepler, Java 7, MySql 5.6 (tentei tambem com Oracle XE 11g)
Ocorre que baixei uma apostila da CALEUM para ajudar, a FJ21 e fui seguindo nela e lembrando dos passos para interagir com um banco de dados…
O JAR que estou usando é o da pasta “C:\Arquivos de programas\MySQL\MySQL Connector J” “mysql-connector-java-5.1.27-bin.jar”
Copiei e colei na pasta do projeto WebContent\WEB-INF\lib, cliquei nele com o botão direito e cliquei em Build Path e Add to Build Path.
O interessante é que rodando uma classe criada com base na apostila TestaLista, mas não ono Server e sim no JavaApplication (Run As --> Java Application) retorna as linhas da tabela do banco corretamente, mas se rodo a aplicação pelo Server ocorre o erro descrito no titulo do tópico.
Já tentei de tudo e não consegui sucesso… Agradeço antecipadamente!!!
Classe ConnectionFactory
package banco;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
public Connection getConnection() {
try {
// return DriverManager.getConnection("jdbc:oracle:thin:DBSEMA/semanario@localhost:1521:XE");
return DriverManager.getConnection("jdbc:mysql://localhost/dbsema","dbsema","semanario");
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
Classe ProfessorDao
package banco;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class ProfessorDao {
// a conexão com o banco de dados
private Connection connection;
public ProfessorDao() {
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Professor professor) {
String sql = "insert into t_professor " +
"(nome,usuario,senha,cpf,rg,endereco,cidade,email,ativo) " +
"values (?,?,?,?,?,?,1,?,'S')";
try {
//prepared statement para inserção
PreparedStatement stmt = this.connection.prepareStatement(sql);
//seta os valores
stmt.setString(1, professor.getNome());
stmt.setString(2, professor.getUsuario());
stmt.setString(3, professor.getSenha());
stmt.setString(4, professor.getCpf());
stmt.setString(5, professor.getRg());
stmt.setString(6, professor.getEndereco());
// stmt.setInt(7, professor.getCidade());
stmt.setString(7, professor.getEmail());
// stmt.setString(9, professor.getAtivo());
//executa
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public List<Professor> getLista() {
try {
List<Professor> professores = new ArrayList<Professor>();
PreparedStatement stmt = this.connection.prepareStatement("Select * from t_professor");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
//criando o objeto Professor
Professor professor = new Professor();
professor.setId_prof(rs.getLong("id_prof"));
professor.setNome(rs.getString("nome"));
professor.setUsuario(rs.getString("usuario"));
professor.setSenha(rs.getString("senha"));
//adicionando objeto a lista
professores.add(professor);
}
rs.close();
stmt.close();
return professores;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public String getConsulta(String pusuario, String psenha) {
String s = "";
try {
PreparedStatement stmt = this.connection.prepareStatement("select * from t_professor where usuario=? and senha=?");
stmt.setString(1, pusuario);
stmt.setString(2, psenha);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
Professor professor = new Professor();
professor.setId_prof(rs.getLong("id_prof"));
professor.setNome(rs.getString("nome"));
professor.setUsuario(rs.getString("usuario"));
professor.setSenha(rs.getString("senha"));
professor.setCpf(rs.getString("cpf"));
professor.setRg(rs.getString("rg"));
professor.setCidade(rs.getInt("cidade"));
professor.setAtivo(rs.getString("ativo"));
professor.setSb_logado("sim");
s = "Login efetuado com sucesso!";
} else {
s = "usuario não cadastrado!";
}
} catch (SQLException e) {
return "deu erro";
}
return s;
}
}
ServLet AdicionaContatoServlet
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import banco.Professor;
import banco.ProfessorDao;
public class AdicionaContatoServlet extends HttpServlet {/**
*
*/
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
// busca o writer
PrintWriter out = response.getWriter();
// buscando os parâmetros no request
String nome = request.getParameter("nome");
String usuario = request.getParameter("usuario");
String senha = request.getParameter("senha");
String email = request.getParameter("email");
String cpf = request.getParameter("cpf");
String rg = request.getParameter("rg");
String endereco = request.getParameter("endereco");
//String cidade = request.getParameter("cidade");
// monta um objeto contato
Professor professor = new Professor();
professor.setNome(nome);
professor.setUsuario(usuario);
professor.setSenha(senha);
professor.setEmail(email);
professor.setCpf(cpf);
professor.setRg(rg);
professor.setEndereco(endereco);
// professor.setCidade(cidade);
// salva o contato
ProfessorDao dao = new ProfessorDao();
dao.adiciona(professor);
// imprime o nome do contato que foi adicionado
out.println("<html>");
out.println("<body>");
out.println("Professor " + professor.getNome() + " adicionado com sucesso");
out.println("</body>");
out.println("</html>");
}
}
JSP Professor.jsp onde a a chamada da “adicionaContato”
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%if (session.getAttribute("logado")=="sim"){%>
<%@include file="cadastro.jsp" %>
<form action="adicionaContato" method="post">
Nome: <input type="text" name="nome" /><br />
Usuário: <input type="text" name="usuario" /><br />
Senha: <input type="text" name="senha" /><br />
E-mail: <input type="text" name="email" /><br />
CPF: <input type="text" name="cpf" /><br />
RG: <input type="text" name="rg" /><br />
Endereço: <input type="text" name="endereco" /><br />
<input type="submit" value="Gravar" />
</form>
<%}else{%>
<%@include file="menu.jsp" %>
<br>Efetue Login!<br>
<%} %>
</body>
</html>
Esta classe é a que mencionei que funciona corretamente executando com Run As --> Java Application e retorna as linhas:
ID: 2 Nome: ALEXANDRE DOS SANTOS ABREU Usuário: AABREU1969 Senha: kuka1969
ID: 3 Nome: ALDA TELES DOS REIS Usuário: ALDA Senha: atr1970
package banco;
import java.util.List;
public class TestaLista {
public static void main(String[] args) {
ProfessorDao dao = new ProfessorDao();
List<Professor> professores = dao.getLista();
for (Professor professor : professores) {
System.out.println("ID: " + professor.getId_prof() + " Nome: " + professor.getNome() + " Usuário: " + professor.getUsuario() + " Senha: " + professor.getSenha());
}
}
}