Parcelas gerar e gravar no BD.[Resolvido]

8 respostas
Anime

Como faço para grarvar as parcelas no banco?E quanto a data tem que ficar assim
12/01/2010
12/02/2010
12/03/2010

Tenho que listar no Jtable e gravar no bd,mas não estou conseguindo.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
      double valorparc,valocompra;
       int numepar=0;
               numepar=tf_numparcelas.getText().length();
               Calendar datacompra = Calendar.getInstance();   
               if  (numepar > 0)
              {
       
                  valorparc=((Double.parseDouble(tf_valorliquido.getText())  / (Double.parseDouble(tf_numparcelas.getText()))));
                   
                   tf_valorpar.setText(String.valueOf(valorparc));
              
                   for(int cont=1;cont<=numepar;cont++)
                   {
                     datacompra.add(Calendar.MONTH,1);
                     
                   }
                  
               }
    }

Estou seguindo esse exemplo,que não tem acesso ao bd e mostra o resultado no prompt de comando…

import java.util.Calendar;   
  
public class Juros {   
  
    // essas informações serão resgatadas por você, não sei como   
    private static final double VALOR_TOTAL = 1110.0;   
    private static final int NUMERO_PARCELAS = 12;   
    private static final double JUROS = 0.05; // 5%   
    private static final Calendar DATA_EMISSAO = Calendar.getInstance();   
  
    public static void main(String[] args) {   
        // imprima o cabeçalho no início, caso te interesse   
        double montante = VALOR_TOTAL + VALOR_TOTAL * JUROS;   
        int montanteEmCentavos = (int) (montante * 100);   
        int valorParcela = montanteEmCentavos / NUMERO_PARCELAS;   
        int parcela1 = montanteEmCentavos - valorParcela   
                * (NUMERO_PARCELAS - 1);   
        imprimeInfo(1, NUMERO_PARCELAS, parcela1, DATA_EMISSAO);   
        for (int i = 2; i <= NUMERO_PARCELAS; i++) {   
            DATA_EMISSAO.add(Calendar.MONTH, 1);   
            imprimeInfo(i, NUMERO_PARCELAS, valorParcela, DATA_EMISSAO);   
        }   
        System.out.printf("%nTotal do acerto: R$ %.2f%n", montante);   
    }   
  
    private static void imprimeInfo(int numeroParcela, int totalParcelas,   
            int valorEmCentavos, Calendar data) {   
        System.out.printf("%02d/%02d\t%td/%tm/%ty\tR$ %.2f%n", numeroParcela,   
                totalParcelas, data, data, data, valorEmCentavos / 100.0);   
    }   
  
}

8 Respostas

lordtiago

Olá, qual banco de dados você vai gravar?
As tabelas já estão criadas?
Você não tem nenhuma classe para fazer o tratamento da gravação dos dados não é mesmo?

para converter as datas utilize esta classe:
package Utilidades;

import java.text.SimpleDateFormat;
import java.util.Date;
public class Data{
    
    public  String formataHoje(){
		Date hoje = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		return sdf.format(hoje);
	}
    public String formataDataSQL(String str){
        String result = getDigitos(str);
        if (result.equals("")){
            result = "null";            
        }
        else{
            result = result.substring(4,8)+ "-" 
            + result.substring(2,4)+"-"
            +result.substring(0,2); 
           }
        System.out.print(result);
         return result;
    }
               
    private String getDigitos(String str){
        String result="";
        if (!str.equals("null")){
            for (int i=0; i< str.length();i++){
                if (str.charAt(i)=='0')
                    result = result+str.charAt(i);
                else if (str.charAt(i)=='1')
                    result = result+str.charAt(i);
                else if (str.charAt(i)=='2')
                    result = result+str.charAt(i);
                else if (str.charAt(i)=='3')
                    result = result+str.charAt(i);
                else if (str.charAt(i)=='4')
                    result = result+str.charAt(i);
                else if (str.charAt(i)=='5')
                    result = result+str.charAt(i);
                else if (str.charAt(i)=='6')
                    result = result+str.charAt(i);
                else if (str.charAt(i)=='7')
                    result = result+str.charAt(i);
                else if (str.charAt(i)=='8')
                    result = result+str.charAt(i);
                else if (str.charAt(i)=='9')
                    result = result+str.charAt(i);
                
            }
        }
        return result;
    }
}

Com isso já resolve metade dos seus problemas a outra metade depende da resposta de minha pergunta.

Anime

Olá ,o banco é access,tenho as tabelas,TB_vendas,TB_operadora e TB_parcela já estão relacionadas.
Não tenho uma classe para tratar a inclusão de dados.

Anime

Me ajudem tenho que entregar o projeto semana que vem…Por favor!

Carlos_ds_jar

Se eu fosse vc iria no site do netbeans.org lá tem uma seção de tutoriais muito praticos e rápidos mesmo pra quem é iniciante no Java. E outra coisa eu tambem mudaria de banco de dados, usa o Postgre ou outro de sua preferencia.
Tente fazer tudo direitinho como tem nos tutoriais do netbeans e poste as suas duvidas aqui que a gente tira. Espero ter ajudado…
Boa sorte:)

lordtiago

Para fazer a conexão com o BD você vai precisar de um Driver e uma classe que faça a conexão.
Você deve procurar na internet driver de BD MS-Access para java. É um arquivo jar, onde você deve por no lib do seu projeto. (importar jars)

A classe para a conexão, pode usar deste exemplo. No exemplo utilizo o MySQL. A assinatura do driver é diferente para cada banco.
package BancoDeDados;

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

public class Conexao {
public Connection conn;
private boolean connected = false;
private boolean sucesso = true;
private String DRIVER = "com.mysql.jdbc.Driver";
private String URL_STRING = "jdbc:mysql://info:3306/cgg";
private String USER = "anaLuiza";
private String PASSWD = "1234";

public void conectar() {
    try {
    Class.forName(DRIVER);
    //conn = DriverManager.getConnection("jdbc:mysql://Developer:3306/cgg","root","1234");
    conn = DriverManager.getConnection(URL_STRING,USER,PASSWD);
    System.out.println("Conectado com sucesso");
    } 
    catch (ClassNotFoundException ex) {
        System.out.println("Driver JDBC Não encontrado");
        } catch (SQLException ex1) {
        System.out.println("Falha durante o processo de conexao" + ex1);
        JOptionPane.showMessageDialog(null, ""+ex1+"");
        }
}

public void desconecta (){
    try {
        conn.close();
        System.out.println("Desconectado");
    }
    catch (SQLException ex2){
        System.out.println("Falha ao desconectar"+ex2);
        JOptionPane.showMessageDialog(null, ""+ex2+"");
    }
}

    public void incluirDados(String sql) {
        try {
        conectar();
        Statement stmt = conn.createStatement(); //Obrigatório para inclusão e consulta
        stmt.executeUpdate(sql); // efetiva a inserção no BD   
        desconecta();
        //JOptionPane.showMessageDialog(null, "dados manipulados com sucesso!!!"); 
        System.out.println("Dados manipulados com sucesso!!!");
        setSucesso(true);
        }

        catch (SQLException ex) {
        System.out.println("Falha ao inserir registro.\n" + ex);
        JOptionPane.showMessageDialog(null, "Falha ao inserir registro "+""+ex+"");
        setSucesso(false);
        }
    }

    public ResultSet consultaDados(String sql) throws SQLException{
      
        try {
            conectar();
       ResultSet result;
        Statement stmt = conn.createStatement(); //Obrigatório para inclusão e consulta
        result = stmt.executeQuery(sql);// efetiva a consulta no BD
        setSucesso(true);
        return result;
       }
       
       catch (SQLException ex) {
        System.out.println("Falha ao pesquisar registro.\n" + ex);
        JOptionPane.showMessageDialog(null, "Falha ao pesquisar registro "+""+ex+"");
        setSucesso(false);
        }        
          return null; 
    }
    
    public Connection getConn(){
    return conn;
}
public String getDRIVER(){
    return DRIVER;
}
public String getURL(){
    return URL_STRING;
}
public String getUSER(){
    return USER;
}
public String getPASSWD(){
    return PASSWD;
}

public void setSucesso(boolean a){
    this.sucesso = a;
}

public boolean getSucesso(){
    return sucesso;
}

}
lordtiago
Feito isso deve-se criar uma classe de entidade que vai armazenar os dados do seu banco na aplicação:
public class Cobranca {

    //Atributos da Entidade Cobrança
    private byte idCobranca;
    private String tipoCobranca;

    //Métodos da Entidade Cobrança
    public byte getIdCobranca() {
        return idCobranca;
    }

    public void setIdCobranca(byte idCobranca) {
        this.idCobranca = idCobranca;
    }

    public String getTipoCobranca() {
        return tipoCobranca;
    }

    public void setTipoCobranca(String tipoCobranca) {
        this.tipoCobranca = tipoCobranca;
    }
    
    
    
}
lordtiago
E por fim uma classe que vai fazer efetivamente os cadastros, alterações e consultas no BD
package DAO;

    
import BancoDeDados.Conexao;
import Entidades.Cobranca;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author tiago
 */
public class CobrancaDAO {

private int idCobranca;
private boolean sucesso;

public void alterarCobranca(String oldTipoCobranca, String tipoCobranca) {
        Conexao con = new Conexao();
        String sql;
       
            sql="update cobranca set tipoCobranca='"+tipoCobranca+"' where"+
          " tipoCobranca='"+oldTipoCobranca+"';";
       con.incluirDados(sql);
       con.desconecta();
    }

    public void excluirCobranca(String tipoCobranca) {
       Conexao con = new Conexao();
        String sql;
      
            sql="update cobranca set tipoCobranca = 'CANCELADO' where"+
          " tipoCobranca='"+tipoCobranca+"';";
       con.incluirDados(sql);
       sucesso = con.getSucesso();
       con.desconecta();
    }

public int getIdCobranca() {
        return idCobranca;
    }

public void setIdCobranca () throws SQLException{
        int result=0;
        Conexao con = new Conexao();
       con.conectar();
       String sql = "select count(*) from cobranca";
        ResultSet rsContador = con.consultaDados(sql);
                    rsContador.next();
                    result = rsContador.getInt(1);
                    idCobranca=result; 
                    con.desconecta();                    
      }

 public void cadastraCobranca(String tipoCobranca) throws SQLException{
      Conexao con = new Conexao();
       con.conectar();       
        setIdCobranca();
        idCobranca=idCobranca+1;
       
       String sql = "INSERT INTO cobranca (idCobranca, tipoCobranca)VALUES(" +
               "'"+idCobranca+"','"+tipoCobranca+"')"; 
       
       con.incluirDados(sql);
       sucesso = con.getSucesso();
       con.desconecta();       
    }

    public boolean getSucesso() {
        return sucesso;
    }

    public void setSucesso(boolean sucesso) {
        this.sucesso = sucesso;
    }
    
 public ArrayList<Cobranca> listarTipoCobranca() throws SQLException{
      Conexao con = new Conexao();
        String sql = "SELECT idCobranca, tipoCobranca from cobranca where tipoCobranca!='CANCELADO'" +
                " ORDER BY tipoCobranca ASC ";
        ResultSet rsCobranca = con.consultaDados(sql);
        ArrayList<Cobranca> listaCobranca = new ArrayList<Cobranca>();
        try {

            while (rsCobranca.next()) {
                Cobranca menu = new Cobranca();
                menu.setIdCobranca(rsCobranca.getByte("idCobranca"));
                menu.setTipoCobranca(rsCobranca.getString("tipoCobranca"));                
                listaCobranca.add(menu);
            }
        } catch (SQLException ex) {
            Logger.getLogger(CobrancaDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
      con.desconecta();
      return listaCobranca;
        
    }
   
    public String verificaCadastroExistente(String cobranca){
        String tipoCobranca = "";
        
        Conexao con = new Conexao();
        String sql = "SELECT tipoCobranca from cobranca" +
                " where tipoCobranca like'%"+cobranca+"%' AND tipoCobranca!= 'CANCELADO'";
        try {
       ResultSet rsCobranca = con.consultaDados(sql); 
       rsCobranca.next();
       tipoCobranca = rsCobranca.getString("tipoCobranca");
       return tipoCobranca;
     } catch(SQLException ex){
       return (tipoCobranca);    
   }
}

}

No exemplo acima, está mais ou menos como que é. Daí é só instanciar esta classe DAO, na classe do seu projeto e chamar os métodos necessários.

Creio que já dê pra resolver o problema.

Anime

Obrigada lordtiago!!!

Criado 2 de agosto de 2010
Ultima resposta 12 de ago. de 2010
Respostas 8
Participantes 3