Ir ao conteúdo

Posts recomendados

Postado

Olá. Estou fazendo um software no NetBeans para ser usado na biblioteca, ele irá registrar os clientes, os livros, os empréstimos e para a devolução do livro, este será deletado da tabela empréstimo. Para facilitar, na tela inicial quero colocar uma tabela para que seja pesquisado o código do cliente (que estou chamando de usuário) para que seja encontrado o registro feito. Não sei se tem outros erros no código, porque ainda não finalizei, e também tem coisas essenciais, como por exemplo as datas estarem em Date, que não estão, pois queria facilitar o meu trabalho inicial, sempre quando converto essas informações, encontro muitos erros. Mas enfim, um erro que eu acho que esta impedindo que eu faça a pesquisa e que a tabela que coloquei na tela chamada Menu, mostre os registros. Irei colocar a parte do código que esta dando erro aqui e também irei disponibilizar todo o projeto com o banco de dados em uma nuvem. 

Esse é o link onde está o projeto https://1drv.ms/u/s!Ajo-4kKrCfZtiQ3NR01U1woX1win (a pasta onde estão as imagens não esta sendo utilizada ainda) O arquivo esta compactado.

 

Esse é a parte do código onde esta apontando o erro

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package classes;

import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
import javax.sql.StatementEvent;
import classes.claEmprestimo;
import classes.claLivro; 
import classes.claMulta;
import classes.claUsuario;
import javax.naming.spi.DirStateFactory.Result;

/**
 *
 * @author Jade e Luanna
 */
public class Dados {

    private classes.claLivro co;
    private Statement stmt = null;
    private Connection conn = null;
    private String driverName = "org.gjt.mm.mysql.Driver";
    private String conString = "jdbc:mysql://localhost:3306/biblioteca";
    private String usuario = "root";
    private String senha = "root";
    
public Dados (){
        try{
            Class.forName(driverName);
            conn = (Connection) DriverManager.getConnection(conString, usuario, senha);
            stmt = (Statement) conn.createStatement();
            JOptionPane.showMessageDialog(null, "Conexão OK");
        }
        catch(ClassNotFoundException e){
            show("Classe não encontrada: "+e.getMessage());
        }
        catch(SQLException e){
            show("Erro SQL: "+e.getLocalizedMessage());
        }
        
}

private void show(String mensagem) {
        JOptionPane.showMessageDialog(null, mensagem, "Erro", JOptionPane.INFORMATION_MESSAGE);
}
    
    
public void insert(claLivro co){
        
    /*SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    */
    String databanco; /*= sdf.format(co.getData_nascimento());*/
    
  String SQL =("INSERT INTO livro(titulo, autor, status) values ('"+co.getTitulo()+"','"+co.getAutor()+"','"+co.getStatus()+"')");   
 
  try{
        stmt.executeUpdate(SQL);
        JOptionPane.showMessageDialog(null,"Livro cadastrado com sucesso");   
 }
 catch(SQLException e){
     show("Erro SQL: "+e.getMessage());
 }
    
}

public void insert(claUsuario u) {
            String databanco; /*= sdf.format(co.getData_nascimento());*/
    
  String SQL =("INSERT INTO usuario(nome, email, telefone) values ('"+u.getNome()+"','"+u.getEmail()+"','"+u.getTelefone()+"')");   
 
  try{
        stmt.executeUpdate(SQL);
        JOptionPane.showMessageDialog(null,"Usuário cadastrado com sucesso");   
 }
 catch(SQLException e){
     show("Erro SQL: "+e.getMessage());
 }
}
    
public void insert(claEmprestimo em) {
        String databanco; /*= sdf.format(co.getData_nascimento());*/
       /* String getData_devolucao = null;
        String getData_prevista_devolucao = null;
        String getObservacao = null;*/
    
  String SQL =("INSERT INTO emprestimo1(codigo_usuario, codigo_livro, data_retirada, data_prevista_devolucao, data_devolucao, observacao) values ('"+em.getCodigo_usuario()+"','"+em.getCodigo_livro()+"','"+em.getData_retirada()+"','"+em.getData_prevista_devolucao()+"','"+em.getData_devolucao()+"','"+em.getObservacao()+"')");   
 
  try{
        stmt.executeUpdate(SQL);
        JOptionPane.showMessageDialog(null,"Emprestimo cadastrado com sucesso");   
 }
 catch(SQLException e){
     show("Erro SQL: "+e.getMessage());
}
    
public ResultSet retormarDados(){ /*?*/
    String SQL = "Select * from emprestimo1";
    ResultSet resultado = null;
    try{
        resultado = stmt.executeQuery(SQL);
    }
    catch (SQLException e){
        JOptionPane.showMessageDialog(null, "Erro SQL:" +e.getMessage());
    }
    return(resultado);
}     

  public ResultSet procurarDados (claEmprestimo emprestimo){
    String SQL = "SELECT * FROM emprestimo1 WHERE codigo LIKE '%" + emprestimo.getCodigo_livro()+ "%'";
    ResultSet resultado = null;
    try{
        resultado = stmt.executeQuery(SQL);
    }
    catch(SQLException e){
        show("ERRO SQL: "+e.getMessage());
    }
    return resultado;
}
  
  public void deletar (Object codigo){
    String SQL = "DELETE FROM emprestimo1 WHERE codigo = '" + codigo + "'";
    try{
        stmt.executeUpdate(SQL);
        JOptionPane.showMessageDialog(null, "Deletado com sucesso");        
    }
    catch(SQLException e){
        show("Erro SQL: " + e.getMessage());
    }
}
  
  
  
  
  
  
    }  
        
}

Agradeço desde já pela atenção.

  • 2 semanas depois...
Postado

Eu também estou iniciando, então o que vou falar talvez possa ser melhorado por alguém mais experiente (ou rebatido, por eu estar falando alguma besteira ahhahahahaha).

 

Mas, assim, eu vi algo estranho em algumas linhas, tipo:

 

String SQL =("INSERT INTO us (continua o código)

Esse parênteses aí me parece estar sobrando.

 

Outra coisa é uma dica que me passaram. Não use o concatenador para expressões SQL. Porque, assim, dependendo da forma que o código está escrito, alguém mal intencionado poderia colocar uma expressão SQL no campo (de pesquisa, por exemplo) e cair suas tabelas. Para evitar isso, use o PreparedStatement.

 

 

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!