Erro na execução sql.Sqlexeption. Sqlite only supports TYPE_FORWARD_ONLY

Bom dia a todos,

Estou voltando a mundo Java depois de um tempo, eu tenho projetinho desktop que eu estou sempre implementando alguma coisa para aprender mais sobre a linguagem porém me deparei com problema… conforme print

O banco de dados que estou usando SQLite…

alguém poderia dar alguma dica por favor.!

Mostra o código.

package br.com.bd.conexao;

/**
 *
 * @author Adailton
 */

import br.com.cadastro.contato.ContatoEmpresa;
import br.com.cadastro.representante.RepresentanteEmpresa;
import br.com.cadastro.empresa.Empresa;
import java.sql.*;
import java.lang.*;
import javax.swing.*;

public class BdConexaoDAO{
	
	private Connection cn;
	public PreparedStatement st;	
        public Statement statement;       
        public ResultSet resultset;
        
	public void abreConexao(){                                  
           
                
           String conexao = ("jdbc:sqlite:C:/SisCom/BaseDados/BDSISCOM.db"); 
                                try {
                    Class.forName("org.sqlite.JDBC");
                    cn = DriverManager.getConnection(conexao); 
		}
                 catch (ClassNotFoundException ex) {
			JOptionPane.showMessageDialog(null,
                                "Erro ao tentar conectar o banco de dados", 
                                "Erro", JOptionPane.ERROR_MESSAGE);
			System.exit(0);
        
		}
		
		catch(SQLException ex){
			
			JOptionPane.showMessageDialog(null, 
                                "Problemas com a conexão", "Erro",
                                JOptionPane.ERROR_MESSAGE);
		
		}	
	}
		
	public void fechaConexao(){
			
		try {
			cn.close();
			st.close();
		}
		catch (SQLException e) {
			
			JOptionPane.showMessageDialog(null, 
                                "Erro ao tentar fechar o banco de dados");
		}    
        }
             
         public void executeSQL(String sql)
       {
            try 
            {
                statement = cn.createStatement(
                        ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
                resultset = statement.executeQuery(sql);
            }
            catch(SQLException sqlex) 
            {
               JOptionPane.showMessageDialog(null,"Não foi possível "+
                       "executar o comando sql,"+sqlex+", o sql passado foi "+sql);
            }

       }
        
        // Carrega Combo
	public void carregaDepto(JComboBox combo){		
		
		abreConexao();		
		String sql;
                
		try {
                    sql = "select distinct Depto from tbDepartamento";		
		    st = cn.prepareStatement(sql);
		    resultset = st.executeQuery();		
		    while(resultset.next()){
                    combo.addItem(resultset.getString("Depto"));		
			}
                }
		
		catch(SQLException e){
                    JOptionPane.showMessageDialog(null, 
                            "Ocorreu o seguinte erro:\n " + e.toString(), 
                            "Erro", JOptionPane.ERROR_MESSAGE);
			
		}		
		fechaConexao();	
	}	
        
        public void carregaTipoEmpresa(JComboBox combo){
            abreConexao();
            String sql;
            try{
                sql = "select distinct NTipoEmpresa from tbTipoEmpresa";
                st = cn.prepareStatement(sql);
                resultset = st.executeQuery();
                while (resultset.next()){
                    combo.addItem(resultset.getString("NTipoEmpresa"));
                }
            }
            
            catch (SQLException e){
                
                JOptionPane.showMessageDialog(null,
                        "Ocorreu o seguinte erro:\n " + e.toString(), 
                        "Erro", JOptionPane.ERROR_MESSAGE);                
            }
            fechaConexao();
        }
        
        public void carregaRepresentante(JComboBox combo){
            
            abreConexao();
            String sql;
            try{
                sql = "select distinct Nome from tbRepresentante";
                st = cn.prepareStatement(sql);
                resultset = st.executeQuery();
                while (resultset.next()){
                    combo.addItem(resultset.getString("Nome"));
                }
            }
            
            catch (SQLException e){
                
                JOptionPane.showMessageDialog(null, 
                        "Ocorreu o seguinte erro:\n " + e.toString(), 
                        "Erro", JOptionPane.ERROR_MESSAGE);                
            }
            fechaConexao();
        }
        
        public void carregaStatus(JComboBox combo){
            
            abreConexao();
            String sql;
            try{
                sql = "select distinct Status from tbStatus";
                st = cn.prepareStatement(sql);
                resultset = st.executeQuery();
                while (resultset.next()){
                    combo.addItem(resultset.getString("Status"));
                }
            }
            
            catch (SQLException e){
                
                JOptionPane.showMessageDialog(null, 
                        "Ocorreu o seguinte erro:\n " + e.toString(), 
                        "Erro", JOptionPane.ERROR_MESSAGE);                
            }
            fechaConexao();
        }
        
         public void carregaGrupo(JComboBox combo){
            
            abreConexao();
            String sql;
            try{
                sql = "select distinct Grupo from tbGrupo";
                st = cn.prepareStatement(sql);
                resultset = st.executeQuery();
                while (resultset.next()){
                    combo.addItem(resultset.getString("Grupo"));
                }
            }
            
            catch (SQLException e){
                
                JOptionPane.showMessageDialog(null, 
                        "Ocorreu o seguinte erro:\n " + e.toString(), 
                        "Erro", JOptionPane.ERROR_MESSAGE);                
            }
            fechaConexao();
        }     
         
         public void carregaRegiao(JComboBox combo){
            
            abreConexao();
            String sql;
            try{
                sql = "select distinct Regiao from tbRegiao";
                st = cn.prepareStatement(sql);
                resultset = st.executeQuery();
                while (resultset.next()){
                    combo.addItem(resultset.getString("Regiao"));
                }
            }
            
            catch (SQLException e){
                
                JOptionPane.showMessageDialog(null, 
                        "Ocorreu o seguinte erro:\n " + e.toString(), 
                        "Erro", JOptionPane.ERROR_MESSAGE);                
            }
            fechaConexao();
        }     
         
         public void carregaRedeSocial(JComboBox combo){
            
            abreConexao();
            String sql;
            try{
                sql = "select distinct Rede_Social from tbRedeSocial";
                st = cn.prepareStatement(sql);
                resultset = st.executeQuery();
                while (resultset.next()){
                    combo.addItem(resultset.getString("Rede_Social"));
                }
            }
            
            catch (SQLException e){
                
                JOptionPane.showMessageDialog(null, 
                        "Ocorreu o seguinte erro:\n " + e.toString(), 
                        "Erro", JOptionPane.ERROR_MESSAGE);                
            }
            fechaConexao();
        } 
         
        
         public void carregaNomeEmpresa(JComboBox combo){
            
            abreConexao();
            String sql;
            try{
                sql = "select distinct Razao_Social from tbEmpresa";
                st = cn.prepareStatement(sql);
                resultset = st.executeQuery();
                while (resultset.next()){
                    combo.addItem(resultset.getString("Razao_Social"));
                }
            }
            
            catch (SQLException e){
                
                JOptionPane.showMessageDialog(null, 
                        "Ocorreu o seguinte erro:\n " + e.toString(), 
                        "Erro", JOptionPane.ERROR_MESSAGE);                
            }
            fechaConexao();
        }        
        
                 
         
         public void carregaUf(JComboBox combo){
            abreConexao();
            String sql;
            try{
                sql = "select distinct ufCidade from tbCidade";
                st = cn.prepareStatement(sql);
                resultset = st.executeQuery();
                while (resultset.next()){
                    combo.addItem(resultset.getString("ufCidade"));
                }
            }
            
            catch (SQLException e){
                
                JOptionPane.showMessageDialog(null, 
                        "Ocorreu o seguinte erro:\n " + e.toString(), 
                        "Erro", JOptionPane.ERROR_MESSAGE);                
            }
            fechaConexao();
        }
         
         public void carregaSelecaoCidade(JComboBox combo, JComboBox c ){
            abreConexao();
            String sql;
            
            try{
                sql = "select nomeCidade, codCidade from tbCidade "
                        + "where ufCidade='"+combo.getSelectedItem()+"'";                
                st = cn.prepareStatement(sql);
                resultset = st.executeQuery();
                while (resultset.next()){
                    c.addItem(resultset.getString("nomeCidade"));
                }
            }
            
            catch (SQLException e){
                
                JOptionPane.showMessageDialog(null, 
                        "Ocorreu o seguinte erro:\n " + e.toString(), 
                        "Erro", JOptionPane.ERROR_MESSAGE);                
            }
            fechaConexao();
        
         }
         
          public Empresa localizaPorNomeEmpresa(String n){
             
             int Empresa = 0;             
             Empresa cadEmp = new Empresa();             
             String sql;
             
             sql = "select * from tbempresa where razao_social like '"+ n +"%'";   
             
             try{
                 abreConexao();
                 st = cn.prepareStatement(sql);
                 resultset = st.executeQuery();
                 
                 while(resultset.next()){   
                     
                     Empresa = resultset.getRow();
                 }
             } 	
             
             catch (SQLException e) {
                 e.printStackTrace();                 
			JOptionPane.showMessageDialog(null,
                                "Ocorreu o seguinte erro:\n " + e.toString(), "Erro", 
                                JOptionPane.ERROR_MESSAGE);
			
		}
             
             try{
                 
                 DefaultListModel modelo = new DefaultListModel();
                 st = cn.prepareStatement(sql);
                 resultset = st.executeQuery();
				
			if(Empresa > 1){
                            
                            String opcoes[] = {"Acessar","Cancelar"};
                            JList lista = new JList(modelo);
                            JScrollPane barra = new JScrollPane(lista);
                            
                            modelo.toString();	
                            
                            cadEmp.setNome("");
                            while(resultset.next()){ 
                                
                                modelo.addElement(resultset.getInt("ID_EMPRESA"));
                                modelo.addElement(resultset.getString("RAZAO_SOCIAL"));
                            
                            } 
                            
                            
                            int res = JOptionPane.showOptionDialog(null, barra, 
                                    
                                    "Registros Localizados", 
                                    JOptionPane.OK_CANCEL_OPTION, 
                                    JOptionPane.PLAIN_MESSAGE, null, opcoes, opcoes[0]);
                                    
                            if (res == JOptionPane.OK_OPTION){
                                
                                sql = "SELECT * FROM TBEMPRESA WHERE RAZAO_SOCIAL='" 
                                        +lista.getSelectedValue()+"'"; 
                                
                                st = cn.prepareStatement(sql);                                 
                                resultset = st.executeQuery();
                                while(resultset.next()){  
                                    cadEmp.setCodigo_Empresa(resultset.getString("ID_EMPRESA")); 
                                    cadEmp.setNome(resultset.getString("RAZAO_SOCIAL"));
                                }
                            }	
                        }  
                        else{
                            
                            while(resultset.next()){
                                cadEmp.setCodigo_Empresa(resultset.getString("ID_EMPRESA"));
                                cadEmp.setNome(resultset.getString("RAZAO_SOCIAL"));
                            }
                        }
             }
             
             catch(SQLException e){
                 e.printStackTrace();  
                 
                 JOptionPane.showMessageDialog(null,
                         "Ocorreu o seguinte erro:\n " + e.toString(), 
                         "Erro", JOptionPane.ERROR_MESSAGE);
             }	
             
             fechaConexao();
             return(cadEmp);
         }          
            

          // Cadastra Contato
    public String CadastroContato(ContatoEmpresa contEmp ){ 
             
             String sql = ""; 
             String ok = "nao"; 
             abreConexao(); 
             int codigoDepto = 0; 
             int cod = 0; 
             
             
             try{ 
                 
                 sql = "select * from tbdepartamento where depto='"+contEmp.getDepartamento()+"'";
                 
                 st = cn.prepareStatement(sql);
                 resultset = st.executeQuery(); 
                 
                 
                 while(resultset.next()){ 
                     
                     codigoDepto = resultset.getInt("Id_Depto"); 
                 } 
             
             }	
             
             catch(SQLException e){ 
                 e.printStackTrace();
                 JOptionPane.showMessageDialog(null, 
                         "Ocorreu o seguinte erro:\n " + e.toString(), 
                         "Erro", JOptionPane.ERROR_MESSAGE); 
             } 
             
             try{ 
                 
                 sql = "select * from tbcontato where id_contato="+ contEmp.getCodigo_contato(); 
                 
                 st = cn.prepareStatement(sql);	
                 resultset = st.executeQuery(); 
                 
                 while(resultset.next()){ 
                     cod = resultset.getInt("id_contato"); 
                 } 
                 
                 if(cod != 0){
                     
                     JOptionPane.showMessageDialog(null,
                             "Esse Codigo pertence a outro Contato",                             
                             "Aviso", JOptionPane.ERROR_MESSAGE); 
                     
                     ok = "mesmo";
                 }	
                 else{ 
                     
                     sql = "insert into tbcontato" 
                             + "(Id_Empresa,Nome, Telefone, Fax, " 
                             + "Celular, Nextel, Email1,"
                             + "Email2,Rede_Social,Nome_RSocial,linha_Compra, Id_DeptoContato ) VALUES " 
                             
                             +"('" +contEmp.getCodigo_empresa() 
                             +"','"+contEmp.getNome_contato() 
                             +"','"+contEmp.getTelefone_contato()
                             +"','"+contEmp.getFax_contato()
                             +"','"+contEmp.getCelular_contato() 
                             +"','"+contEmp.getId_nextel_contato()
                             +"','"+contEmp.getEmail1_contato() 
                             +"','"+contEmp.getEmail2_contato() 
                             +"','"+contEmp.getRede_Social()
                             +"','"+contEmp.getNome_Rede_Social()
                             +"','"+contEmp.getProd_compra_contato()
                             
                             +"','"+codigoDepto+"');"; 
                     
                     
                     st = cn.prepareStatement(sql); 
                     st.executeUpdate(); 
                     
                     ok = "sim"; 
                 } 
             }	
             
             catch(SQLException e){ 
                 e.printStackTrace();              
                 
                 JOptionPane.showMessageDialog(null,
                     "Ocorreu o seguinte erro:\n " + e.toString(), 
                     "Erro", JOptionPane.ERROR_MESSAGE); 
             }	
             
             fechaConexao(); 
             return(ok); 
         }
    
    
        public String AtualizacadastroContato (ContatoEmpresa ContEmp){
        
        
   
        abreConexao();
        
        String msg = "";
        String sql = "";
       
        
        int Codigo_empresa = ContEmp.getCodigo_empresa();     
        String Nome_contato = ContEmp.getNome_contato();
        String Telefone_contato = ContEmp.getTelefone_contato();
        String Fax_contato = ContEmp.getFax_contato();
        String Celular_contato = ContEmp.getCelular_contato();
        String Id_nextel = ContEmp.getId_nextel_contato();
        String Email1_contato = ContEmp.getEmail1_contato();
        String Email2_contato = ContEmp.getEmail2_contato();
        String Rede_Social = ContEmp.getRede_Social();
        String Nome_Rede_Social = ContEmp.getNome_Rede_Social();
        String Prod_compra = ContEmp.getProd_compra_contato();
        int Departamento = ContEmp.getID_Depto();
        
       
        try{
            sql = "update tbcontato set "
                    + "Id_Empresa = '"+Codigo_empresa+"',"
                    + "Nome = '"+Nome_contato+"',"                   
                    + "Telefone = '"+Telefone_contato+"',"
                    + "Fax = '" +Fax_contato+"',"
                    + "Celular = '"+Celular_contato+"',"
                    + "Nextel = '"+Id_nextel+"',"
                    + "Email1 = '"+Email1_contato+"',"
                    + "Email2 = '"+Email2_contato+"',"  
                    + "Rede_Social = '"+Rede_Social+"',"
                    + "Nome_RSocial = '"+Nome_Rede_Social+"',"
                    + "linha_Compra = '"+Prod_compra+"',"
                    + "Id_DeptoContato =" +Departamento;    
            sql += " where Id_Contato in ("+ContEmp.getCodigo_contato()+")";
            st = cn.prepareStatement(sql);
	    st.executeUpdate();
            msg = "Dados Atualizados com Sucesso";  
        
        }
        
        catch (SQLException ex){
            ex.printStackTrace();  
            
            msg = "\tOcorreu o seguinte erro: \n" + ex.toString();
        }
                
        return (msg); 
        
    }
    

       
     public String cadastrarepresentante(RepresentanteEmpresa repEmp ){ 
             
         
         
         
             String sql = ""; 
             String ok = "nao"; 
             abreConexao(); 
             String codigoDepto = ""; 
             int cod = 0;             
             
            
             
             try{ 
                 
                 sql = "select * from tbRepresentante where Id_Representante="+ repEmp.getCodigo_representante(); 
                 
                 st = cn.prepareStatement(sql);	
                 resultset = st.executeQuery(); 
                 
                 while(resultset.next()){ 
                     cod = resultset.getInt("Id_Representante"); 
                 } 
                 
                 if(cod != 0){
                     
                     JOptionPane.showMessageDialog(null,
                             "Esse Codigo pertence a outro Contato",                             
                             "Aviso", JOptionPane.ERROR_MESSAGE); 
                     
                     ok = "mesmo";
                 }	
                 else{ 
                     
                     sql = "insert into tbRepresentante" 
                             + "(Nome, Telefone, Fax, " 
                             + "Celular, Email ) values " 
                             
                             +"('" +repEmp.getNome_representante()
                             +"','"+repEmp.getTelefone_representante()
                             +"','"+repEmp.getFax_representante()
                             +"','"+repEmp.getCelular_representante()                           
                             +"','"+repEmp.getEmail_representante()                           
                           
                          
                             +"');"; 
                     
                     
                     st = cn.prepareStatement(sql); 
                     st.executeUpdate(); 
                     ok = "sim"; 
                 } 
             }	
             
             catch(SQLException e){ 
                 e.printStackTrace();              
                 
                 JOptionPane.showMessageDialog(null,
                     "Ocorreu o seguinte erro:\n " + e.toString(), 
                     "Erro", JOptionPane.ERROR_MESSAGE); 
             }	
             fechaConexao(); 
             return(ok); 
         }  
}

SQLite suporta apenas TYPE_FORWARD_ONLY

Valeu amigo obrigado deu certo…

Eu estava usando Mysql estava funcionado normal, mais mudei para Sqlite ai deu esse BO.

1 curtida