1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Database is locked banco SQLite, Erro ao inserir os dados

Ola Pessoal,

Fiz salvar os dados em uma aplicação simples, para salvar cliente, contudo é apresentado erro ao inserir os dados, Database is locked, eu utilizo a IDE Eclipse e o Banco de Dados é SQLite já realizei teste e a tabela é criada, mas não insere os dados, alguém sabe o que pode ser? Segue abaixo o código para a inserção de dados, espero que possam me ajudar!

package dao;

import java.sql.*;
import javax.swing.JOptionPane;

import modelo.Cliente;

public class CadastroCliente {

    private Connection con;
    private Statement stm;
    private PreparedStatement pstmt;
    String sql;
    ResultSet rs;

    public void inserir(Cliente cliente) {
        conectar();
        sql = "INSERT INTO cliente VALUES('" + cliente.getCodigo() + "','"
                + cliente.getNome() + "','" + cliente.getTelefone() + "','"
                + cliente.getEndereco() + "')";
        try {
            stm.executeUpdate(sql);
        } catch (SQLException e) {
            imprimeErro("Erro ao inserir dados", e.getMessage());
        } finally {
            fechar();
        }
    }


    public void conectar() {
        try {
            con = ConnectionFactory.createConnection();
            stm = con.createStatement();
            System.out.println("Conectado");
        } catch (SQLException e) {
            System.out.println("Erro ao conectar");
        }
    }

    public void fechar() {
        try {
            stm.close();
            con.close();
            System.out.println("Conexão finalizada");
        } catch (SQLException e) {
            System.out.println("Erro ao finalizar conexão");
        }

    }

       private void imprimeErro(String msg, String msgErro) {  
              JOptionPane.showMessageDialog(null, msg, "Erro crítico", 0);  
              System.err.println(msg);  
              System.out.println(msgErro);  
              System.exit(0);  
           }
}

Leo obrigada por responder, fiz a verificação que você falou, na verdade estou utilizando o DatabaseBrowser Portable para acessar o que chega a ser banco criado, contudo não havia nenhuma conexão anterior ao banco, tenho algumas dificuldades ainda, porque estou iniciando programação com conexão ao banco de dados.

Fiz o teste usando o PreparedStatment tbm e continua o erro!

https://www.filepicker.io/api/file/fbuHPfroS8ixy2LGQxdU

Sabe o que pode pode ser? Espero que possa me ajudar!!

Muito obrigada Leo por sua ajuda, era exatamente isso havia alguma conexão anterior, mas eu não sei de onde vem essa conexão. A única solução q encontrei foi essa:

    public void conectar() {
        if (con != null)
            fechar();
        try {
            con = ConnectionFactory.createConnection();
            stm = con.createStatement();
            System.out.println("Conectado");
        } catch (SQLException e) {
            System.out.println("Erro ao conectar");
        }
    }
  • Vou dar um palpite, o SQLite deve ter uma limitação que trava o banco se alguém já estiver conectado, verifique se você mesmo não está conectado ao banco utilizando alguma ferramenta de administração, e quando vai testar seu programa ocorre esse erro por conta disso. Desconecte da ferramenta de ADM e tente novamente, veja se funciona.

    Rafael Rossignol   29 de jun de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java banco-de-dados ou faça a sua própria pergunta.