Eu tenho uma app que faz a consuta no banco de dados e imrpimi os registros dentro de um jtable,
o que estou tentando fazer é colocar esses registros da jtable dentro de uma
tabela no banco de dados que foi criada para receber esses dados, para isso
criei tres classes e fiz as ligacões mas naum esta dando certo
essas são as classes:
[code]package spc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
public class EnviaBanco {
private String drive, url, usarname, password;
private Connection con;
public static List listacliente;
public EnviaBanco(){
try{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
String url = "endereco do banco";
this.con = DriverManager.getConnection (url, "usuario", "senha");
Statement st = con.createStatement();
System.out.println("Conectado");
for(int i =0; i<listacliente.size();i++){
Pessoa p = (Pessoa) listacliente.get(i);
String query = "insert into SAMEA_SPC(spc_nome_cliente,spc_endereco_cliente, spc_cpf, spc_cgc, spc_bairro, spc_cep, spc_telefone, spc_valor_debito, spc_cod_programa, spc_num_ligacao)" + "values ("+ PrincipalSamea_spc.model.getColumnName(0)+","+ PrincipalSamea_spc.model.getColumnName(1)+","+PrincipalSamea_spc.model.getColumnName(2)+","+PrincipalSamea_spc.model.getColumnName(3)+","+PrincipalSamea_spc.model.getColumnName(4)+","+PrincipalSamea_spc.model.getColumnName(5)+","+PrincipalSamea_spc.model.getColumnName(6)+")";
}
}catch(SQLException e1){
System.out.println("Erro ao conectar ao banco");
e1.printStackTrace();
}finally{ // Finalizando a conexão
System.out.println("Encerrando a conexão");
}
}
}
[/code]
[code]package spc;
import javax.swing.table.DefaultTableModel;
public class Samea_spc{
private String cliente_nome, cliente_endereco, cliente_cpf, cliente_cgc, cliente_bairro, cliente_cep, cliente_telefone, cliente_id, cliente_valorDebito, cliente_codigoPrograma, cliente_numeroLigacao;
public Object getCpf;
public Samea_spc () {}
public void setNome_cliente (String cliente_nome) {
this.cliente_nome = cliente_nome;
}
public void setCliente_endereco (String cliente_endereco) {
this.cliente_endereco = cliente_endereco;
}
public void setCliente_cpf(String cliente_cpf) {
this.cliente_cpf = cliente_cpf;
}
public void setCliente_cgc(String cliente_cgc) {
this.cliente_cgc = cliente_cgc;
}
public void setCliente_bairro(String cliente_bairro) {
this.cliente_bairro = cliente_bairro;
}
public void setCliente_cep(String cliente_cep) {
this.cliente_cep = cliente_cep;
}
public void setCliente_telefone (String cliente_telefone) {
this.cliente_telefone = cliente_telefone;
}
public void setCliente_id(String cliente_id) {
this.cliente_id = cliente_id;
}
public void setCliente_valorDebito(String cliente_valorDebito) {
this.cliente_valorDebito = cliente_valorDebito;
}
public void setCliente_codigoPrograma (String cliente_codigoPrograma) {
this.cliente_codigoPrograma = cliente_codigoPrograma;
}
public void setCliente_numeroLigacao (String cliente_numeroLigacao) {
this.cliente_numeroLigacao = cliente_numeroLigacao;
}
public String getCliente_nome() {
return cliente_nome;
}
public String getCliente_endereco () {
return cliente_endereco;
}
public String getCliente_cpf() {
return cliente_cpf;
}
public String getCliente_cgc() {
return cliente_cgc;
}
public String getCliente_bairro() {
return cliente_bairro;
}
public String getCliente_cep() {
return cliente_cep;
}
public String getCliente_telefone () {
return cliente_telefone;
}
public String getCliente_id() {
return cliente_id;
}
public String getCliente_valorDebito() {
return cliente_valorDebito;
}
public String getCliente_codigoPrograma () {
return cliente_codigoPrograma;
}
public String getCliente_numeroLigacao() {
return cliente_numeroLigacao;
}
}
[/code]
[code]package spc;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import java.awt.Adjustable;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class PrincipalSamea_spc extends JFrame implements ActionListener
{
public static JLabel L1, L2;
private JLabel L3, L4, L5;
private JTextField Txt1, Txt2;
public static JTextField Txt4, Txt3;
public static JTextArea TxtArquivo;
private JFileChooser Arquivo;
private JButton CmdConsultar, CmdGerar, CmdSair, CmdC, CmdEnvia;
public static JTable table;
public static DefaultTableModel model;
private JScrollPane js;
public static GridLayout grade;
private void setCenter(JFrame frame)
{
Dimension paneSize = frame.getSize();
Dimension screenSize = frame.getToolkit().getScreenSize();
frame.setLocation((screenSize.width - paneSize.width) / 2, (screenSize.height - paneSize.height) / 2);
}
public PrincipalSamea_spc()
{
try{
UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
SwingUtilities.updateComponentTreeUI(this);
}catch(Exception erro) {
JOptionPane.showMessageDialog(null,erro);
}
setSize(768, 570);
setResizable(false);
setTitle("Envio de dados");
setCenter(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cp = getContentPane();
cp.setLayout(null);
// ((JComponent) cp).setBorder(new FundoSistema());
model = new DefaultTableModel();
model.addTableModelListener(table);
model.addColumn("Nome do cliente");
model.addColumn("Endereço do cliente");
model.addColumn("CPF");
model.addColumn("CGC");
model.addColumn("Bairro");
model.addColumn("CEP");
model.addColumn("Telefone");
model.addColumn("Data do vencimento");
model.addColumn("Data da compra");
model.addColumn("Valor do Debito");
model.addColumn("Codigo do programa");
model.addColumn("Numero da ligação");
L5 = new JLabel(" Dados dos Clientes");
L5.setFont(new Font("Dialog", Font.BOLD, 12));//definidndo a fonte
js = new JScrollPane(L5);
js.setBounds(30, 60, 115, 21);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
table = new JTable();
table.setModel(model);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setAutoscrolls(true);
int rows = 3;
int cols = 3;
JTable tabela = new JTable (rows, cols);
// Desativar auto redimensionamento
table.setAutoResizeMode (JTable.AUTO_RESIZE_OFF);
// Setando a largura das colunas
int vColIndex = 0;//nome do cliente
TableColumn col = table.getColumnModel (). getColumn (vColIndex);
col.setPreferredWidth (250);
int vColIndex1 = 1;//endereco
TableColumn col1 = table.getColumnModel (). getColumn (vColIndex1);
col1.setPreferredWidth (300);
int vColIndex2 = 2;//cpf
TableColumn col2 = table.getColumnModel (). getColumn (vColIndex2);
col2.setPreferredWidth (80);
int vColIndex3 = 3;//cgc
TableColumn col3 = table.getColumnModel (). getColumn (vColIndex3);
col3.setPreferredWidth (100);
int vColIndex4 = 4;//coluna de nome do bairro
TableColumn col4 = table.getColumnModel (). getColumn (vColIndex4);
col4.setPreferredWidth (200);
int vColIndex5 = 5;//cep
TableColumn col5 = table.getColumnModel (). getColumn (vColIndex5);
col5.setPreferredWidth (70);
int vColIndex6 = 6;//telefone
TableColumn col6 = table.getColumnModel (). getColumn (vColIndex6);
col6.setPreferredWidth (70);
js = new JScrollPane(table); //tabela
js.setBounds(30, 80, 700, 400);
cp.add(js);
Arquivo = new JFileChooser(".");
L1 = new JLabel(" NSA");
L1.setFont(new Font("Dialog", Font.BOLD, 12));//defindo a fonte
js = new JScrollPane(L1);
js.setBounds(30, 20, 33, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
Txt2 = new JTextField();//referente ao NSA
Txt2.addActionListener(this);
js = new JScrollPane(Txt2);
js.setBounds(70, 20, 150, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
L2 = new JLabel(" Caminho dos dados");
L2.setFont(new Font("Dialog", Font.BOLD, 12));//defindo a fonte
js = new JScrollPane(L2);
js.setBounds(230, 20, 120, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
Txt1 = new JTextField();//referente ao caminho de dados esse eh o textField que recebe o valor do fileChooser
js = new JScrollPane(Txt1);
Txt1.addActionListener(this);
js.setBounds(355, 20, 250, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
js.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); // AQUI! Acrescentei essa linha para controlar o comportamento da barra horizontal de rolagem
cp.add(js);
CmdC = new JButton("...");
CmdC.setBounds(610, 20, 25, 25);
CmdC.addActionListener(this);
cp.add(CmdC);
CmdConsultar = new JButton("Consultar");
CmdConsultar.setBounds(640, 20, 90, 25);
CmdConsultar.addActionListener(this);
cp.add(CmdConsultar);
CmdEnvia = new JButton("SPC");
CmdEnvia.setBounds(510, 500, 60, 25);
CmdEnvia.addActionListener(this);
cp.add(CmdEnvia);
CmdGerar = new JButton("Gerar");
CmdGerar.setBounds(580, 500, 70, 25);
CmdGerar.addActionListener(this);
cp.add(CmdGerar);
L3 = new JLabel(" Total de Clientes");
L3.setFont(new Font("Dialog", Font.BOLD, 12));//defindo a fonte
js = new JScrollPane(L3);
js.setBounds(30, 500, 105, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
//para receber o resultado da soma de numero de clientes
Txt3 = new JTextField();
js = new JScrollPane(Txt3);
js.setBounds(140, 500, 100, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
L4 = new JLabel(" Total de Debitos");
L4.setFont(new Font("Dialog", Font.BOLD, 12));//defindo a fonte
js = new JScrollPane(L4);
js.setBounds(290, 500, 100, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
//para receber o valor total de debitos dos clientes
Txt4 = new JTextField();
js = new JScrollPane(Txt4);
js.setBounds(400, 500, 100, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
CmdSair = new JButton("Sair");
CmdSair.setBounds(660, 500, 70, 25);
CmdSair.addActionListener(this);
cp.add(CmdSair);
TxtArquivo = new JTextArea();//recebe os valores que seram impressos no txt
TxtArquivo.setVisible(false);
js = new JScrollPane(TxtArquivo);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == CmdEnvia) {
CmdEnvia = PrincipalPessoa.main(null);
}
if (e.getSource() == CmdConsultar) {
CmdConsultar = InverteNovoRecebeBanco.main(null);
}
if (e.getSource() == CmdC) {
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setLocation(0, 0);
// Esta linha alinha o JFileChooser no centro
int returnVal = chooser.showSaveDialog(this);
// INICIO - ALTERACAO
if (returnVal == JFileChooser.APPROVE_OPTION) {
Txt1.setText(chooser.getSelectedFile().getAbsolutePath());
}
// FIM - ALTERACAO
}
if (e.getSource() == CmdGerar) {
// INICIO - ALTERACAO
if (Txt1.getText().trim().equals("")) {
JOptionPane.showMessageDialog(null, "Digite o local onde voce quer salvar o arquivo");
return;
}
if (Txt2.getText().trim().equals("")) {
JOptionPane.showMessageDialog(null, "Digite um nome para gerar o arquivo");
return;
} else {
String arq = Txt1.getText();
if (!arq.endsWith(File.separator)) {
arq += File.separator;
}
arq += Txt2.getText();
try {
salvar(arq, TxtArquivo.getText());
JOptionPane.showMessageDialog(null, "Arquivo salvo com sucesso!");
} catch (IOException ioe) {
JOptionPane.showMessageDialog(null, "Não foi possível salvar arquivo!");
}
// }
// FIM - ALTERACAO
}
}
if (e.getSource() == CmdSair) {
this.dispose();
}
}
public void salvar(String nomeArq, String conteudoArq) throws IOException
{
// INICIO - ALTERACAO
PrintWriter out = new PrintWriter(new FileWriter(nomeArq));
out.print(conteudoArq);
out.close();
// FIM - ALTERACAO
}
public static void main(String args[])
{
PrincipalSamea_spc app = new PrincipalSamea_spc();
app.show();
}
}[/code]
A primeira classe é a classe que tem o insert para inserir os dados na tabela do banco de dados, a segunda classe é de get’s e set’s, e a terceira classe é a classe que eu executo a app, eu sei que esta muito grande o meu codigo mas isso eu arrumo depois alguem pode me dizer o que estou fazendo de errado?
Por favor me ajudem! :oops: