Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vinicius Rangel

code java.

Recommended Posts

Como conversado com o moderador Renato Utsch (Obrigado pela ajuda de novo), ingressei no mundo do Java.

 

Estou disposto a entender e aprender.

 

com isso já fiz estudos e estava testando algumas coisas com o banco de dados e me surgiu um problema.

 

Vamos lá eu tenho a classe principal

 

package principal;

import library.Dados;

public class ClickColetiva {

   public static void main(String[] args) {
       Dados d = new Dados();
       try {
           d.receberDados();
       }catch(Exception e) {
          System.out.println("Erro: Main princiapl-> "+e.getMessage());
       }
   }
}

 

Tenho a classe de conexão dentro de um outro pacote chamado db

 

package db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Conexao {
   Connection con;
   PreparedStatement std;

   public void abrirDb() throws SQLException, ClassNotFoundException{
       Class.forName("com.mysql.jdbc.Driver");
       String url = "jdbt.mysql://localhost/home/mysql/th122455_clickcoletiva";
       String user = "root";
       String pass = "";
       con = DriverManager.getConnection(url, user, pass);
   }

   public void fecharDb() throws SQLException{
       if(con != null){
          con.close(); 
       }
       if(std != null){
           con.close();
       }
   }
}

 

no mesmo pacote eu tenho uma classe chamada Gravar

 

 

package db;
import java.sql.SQLException;
import library.Categoria;

public class Gravar extends Conexao{
   public void gravarCate() throws SQLException, ClassNotFoundException{
      Categoria c = new Categoria();
      abrirDb();
        std = con.prepareStatement("INSERT into cc_categorias (?, 1)");
        std.setString(1, c.getNome());
        std.execute();
      fecharDb();
   }
}

 

e outro pacote chamado library com a classe Categoria

 

package library;

public class Categoria {

   private String nome;

   /**
    * @return the nome
    */
   public String getNome() {
       return nome;
   }

   /**
    * @param nome the nome to set
    */
   public void setNome(String nome) {
       this.nome = nome;
   }
}

 

e Dados (Responsável por receber os dados que o usuário passar com a biblioteca Scanner )

 

package library;

import db.Gravar;
import java.sql.SQLException;
import java.util.Scanner;

public class Dados {
   Scanner scan = new Scanner(System.in);
   Categoria c = new Categoria();
   Gravar g = new Gravar();

   public void receberDados() throws SQLException{ 
       try{
           System.out.println("Bem vindo ao sistema Desktop Click Coletiva version -00000.0.1\n");
           System.out.println("Digite o nome da categoria que deseja adicionar");
           c.setNome(scan.nextLine());
           g.gravarCate(c);
       }catch(Exception e){
          System.out.println("Erro: Receber Dados ->"+e.getMessage());
       }
   }
}

 

até onde meu pequeno conhecimento se estende na classe Dados e função receberDados esta correto pois eu mosto os texto recupero o nome e mando para Classe Gravar na função gravarCate passando os valores que a classe categoria armazenou mais ele não vai e acaba mostrando a o Exception.

 

Qualquer ajuda, crítica e/ou sugestão é bem vinda, vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem ver a exception que está sendo lançada fica um pouco difícil de saber o que realmente está errado.

Mas dando uma analizada percebi alguns detalhes irregulares.

 

package db;
import java.sql.SQLException;
import library.Categoria;

public class Gravar extends Conexao{
   // recebe uma categoria como parametro
   public void gravarCate(Categoria c) throws SQLException, ClassNotFoundException{
      abrirDb();                                         
                                 // altere para o nome da coluna da tabela
        std = con.prepareStatement("INSERT into cc_categorias (nome_coluna) values (?)");
        std.setString(1, c.getNome());
        std.execute();
      fecharDb();
   }
}

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.