Olá !!!
Não consegui entender o erro que está ocorrendo, o meu objetivo é inserir dados no banco, irei abaixo colocar as paginas e o erro que está ocorrendo. Uso o netbeans
---------#inseridados jsp#--------
<%@page contentType=“text/html” pageEncoding=“UTF-8”%>
JSP Page Nome:Sobrenome:
Salario:
-----------------#servletCadDados.java#-------------------
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.<em>;
import javax.servlet.http.</em>;
import <a href="http://java.io">java.io</a>.<em>;
import java.sql.</em>;
public class servletCadDados extends HttpServlet {
private Statement sql = null;
private Connection con = null;
<a class="mention" href="/u/override">@Override</a>
public void init( ServletConfig c ) throws ServletException {
super.init( c );
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
con = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};dbq=c:/cadempresa.mdb");
}
catch ( Exception e ) {
e.printStackTrace();
con = null;
}
}
// <a class="mention" href="/u/override">@Override</a>
public void doPost( HttpServletRequest rq, HttpServletResponse rs )
throws ServletException, IOException {
PrintWriter sai;
String nome, sobrenome, salario;
nome =rq.getParameter( “nome” );
sobrenome = rq.getParameter( “sobrenome” );
salario = rq.getParameter( “salario” );
sai = rs.getWriter();
rs.setContentType( “text/html” );
if ( nome.equals ( “” ) || sobrenome.equals( “” )
) {
sai.println( "
Por favor, preencha os campos " +
“Nome, sobrenome e salario.
” );sai.close();
return;
}
String dados = “’” + nome + “’,’” + sobrenome + “’,’” + salario + “’”;
boolean sucesso = inserirNoLivro(dados);
if ( sucesso )
sai.println( "
Obrigado " + nome + “,” +
“
pelo registro .
” );else
sai.println( “
Seus dados:
” + dados +
“
não puderam ser registrados.
” +
“Por favor, tente outra vez mais tarde.
” );sai.close();
}
private boolean inserirNoLivro( String dados ) {
try {
sql = con.createStatement();
sql.execute( "insert into lvisitas " +
"(nome,sobrenome,salario) " +
“values (” + dados + “)” );
sql.close();
}
catch ( Exception e ) {
System.err.println( “ERRO: problemas com o banco de dados.” );
e.printStackTrace();
return false;
}
return true;
}
<a class="mention" href="/u/override">@Override</a>
public void destroy() {
try {
con.close();
}
catch ( Exception e ) {
System.err.println( “ERRO ao fechar o BD.” );
}
}
}
--------------------#Error#----------------------
INFO: Server startup in 631 ms
ERRO: problemas com o banco de dados.
java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] A operação deve usar uma consulta atualizável.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
----------------#error console depurador#-----------------
Anexando a tomcat_shared_memory_id
Executando programa do usuário
LineBreakpoint servletCadDados.java : 67 enviado com êxito.
LineBreakpoint servletCadDados.java : 67 enviado com êxito.
Não foi possível enviar o ponto de interrupção LineBreakpoint servletCadDados.java : 67, razão: Não há local executável disponível na linha 69 da classe servletCadDados.
Inválido LineBreakpoint servletCadDados.java : 67
Desde já agradeço qualquer ajuda!!!
