Ajuda em JSP usando Dreamweaver + MySQL

7 respostas
T
Pessoal, estou começando a aprender sobre jsp e estava tentando fazer uma página com conexão com banco de dados usando MySql e Dreamweaver. No entanto quando tento acessar a minha página mostra TESTE e acontece essa exceção: ClassNotFoundException e Esse é o código que to usando:
<%@ page language="java" import="java.sql.*" import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>testando banco de dados</title>
</head>

<body>
<p>TESTE</p>
<p>&nbsp;</p>
<p>
<%!
private int erro = 0;
%>

<%
	try{
		String driverName = "org.gjt.mm.mysql.Driver";
	  	Class.forName(driverName);
		
		try{
					String url = "jdbc:mysql://localhost/test";
				Connection con = 
					DriverManager.getConnection(url,
						"root", "admin");
						
				Statement s = con.createStatement();
				
				String sql = "SELECT * FROM test";
					
				ResultSet rs = s.executeQuery(sql);
				if(rs.next()) {
					
					rs.close();					
					out.println("ok");
					
				}
			
				s.close();
				con.close();
				
			}
			catch (SQLException e){
				out.println(e.toString());
			}
			
			catch (Exception e){
				out.println(e.toString());
				e.printStackTrace(); 
			}
	}
		
	catch(ClassNotFoundException e){
		out.println(e.toString() + " erro ");
		
	}
	

%>
<%= ++ erro %>
</p>
<form id="form1" name="form1" method="get" action="">
  <label for="textfield"></label>
</form>
</body>
</html>

uso o tomcat.
nas variáveis de ambiente só tem uma que eu criei que é essa
CLASSPATH C:\mysql-connector-java-5.1.6-bin

Desde já agradeço

7 Respostas

acjZer0

Cara cola o log do erro, se você esta usando alguma classe você deve importa-la

T

Cara o erro que aparece é esse:
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver erro 1

F

Você tem de colocar o .jar que contém a classe Driver do pacote org.gjt.mm.mysql no seu classpath (i.e. dentro do WEB-INF/lib).

Você está usando scriptles <% … %>
Qnd seu programa crescer, o reuso e a manutenção poderão se tornar difíceis.
Procure separar a camada de apresentação da camada de negócios (MVC).
M = model = camada de negócios = use suas classes .java
V = view = camada de apresentação = use jsp
C = controller = faz a ligação entre model e view = use servlets.
Depois de estar craque nisto, vc pode partir para o JSF ou outros frameworks.

Mas, por hora, o seu problema é colocar o .jar no classpath.

T

Cara, não pretendo ficar usando scriptles é que estava vendo apenas como usá-los, mas valeu pela dica.

não entendi quando você falou da classe do Driver no classpath.
eu tenho o .jar no pasta c:\
minhas variáveis de ambiente estão como na figura.
O que eu devo colocar na WEB-INF/lib.

Abraços

F

Esquece esse classpath que vc me mostrou.
O lance é q para rodar um programa WEB, JEE, a sua aplicação deve respeitar a uma estrutura de pastas.

a pasta raíz da sua aplicação deve conter as pastas lib e WEB-INF e o arquivo web.xml conforme abaixo

  • lib
  • WEB-INF
  • web.xml

Na linha String driverName = “org.gjt.mm.mysql.Driver”;
você está setando uma String com o nome de uma classe que você vai usar logo abaixo. É uma classe como outra qualquer, MAS, para usar esta classe ela tem de existir (como outra qualquer). Algumas classes já vem com a JDK do Java que você baixa do site da Sun. MAS algumas classes, as classes fabricadas por terceiros, devem ser baixadas dos site de terceiros. É o caso da classe Driver à qual vc fez referência. Cada fabricante de banco de dados possui o seu próprio ‘Driver’ de acesso ao banco.

E esta tal classe Driver está dentro de um arquivo .jar. É este arquivo que você deve baixar.
Procurei e achei o link abaixo
http://www.mysql.com/downloads/connector/j/5.1.html

É lá q vc vai baixar o mysql connector.
Deszipe o arquivo e pegue o mysql-connector-java-5.1.13-bin.jar
Cole este .jar no seu WEB-INF/lib

T

Cara,
e depois disso como no código eu vou importar essa classe para minha aplicação?

Abraço

T

Cara, vlew
Segui as dicas e funcionou.
Abraço

Criado 30 de junho de 2010
Ultima resposta 1 de jul. de 2010
Respostas 7
Participantes 3