Inclusão de registros no Mysql

7 respostas
C

Caros colegas, estou tentando a dias iterar sob uma lista de objetos incluir os registros, mais só o primeiro é incluído, alguém sebe porque?
BD: MySql
Driver: com.mysql.jdbc.Driver

Já tentei de tudo, incluir de um a um, iterando sob o ResultSet, transção, Statement.addBatch mais só é incluído o primeiro da lista.

7 Respostas

Mero_Aprendiz

clarinetabest:
Caros colegas, estou tentando a dias iterar sob uma lista de objetos incluir os registros, mais só o primeiro é incluído, alguém sebe porque?
BD: MySql
Driver: com.mysql.jdbc.Driver

Já tentei de tudo, incluir de um a um, iterando sob o ResultSet, transção, Statement.addBatch mais só é incluído o primeiro da lista.

Olá, tem como postar o código?

C

Este é o método para incluir meo objeto

public int incluir(academiaAluno aa) {

int resposta = 0;

SimpleDateFormat formatador = new SimpleDateFormat(yyyy-MM-dd);

String inclusao = formatador.format(aa.getDataInclusao());
PreparedStatement stm = null;

    try {
        stm = this.getConexao().prepareStatement("insert into ACADEMIA_ALUNOS (ALUNOS_ID_ALUNO, ACADEMIAS_ID_ACADEMIA, DATA_INCLUSAO) values (?,?,'" + inclusao + "')");
        stm.setInt(1, aa.getAlunosIdAluno());
        stm.setInt(2, aa.getAcademiasIdAcademia());
        resposta = stm.executeUpdate();
        this.getConexao().commit();
        
        stm.close();
    } catch (Exception ex) {
    } finally {
    }

    return resposta;
}

este é um teste para ver se funciona e só inclui o primeiro da lista

public static void main(String[] args) {

academiaAlunoDao dao = new academiaAlunoDao();

academiaAluno aa = new academiaAluno();

List lista = new ArrayList();
aa.setAcademiasIdAcademia(2);
    aa.setAlunosIdAluno(15);
    aa.setDataInclusao(new Date());
    lista.add(aa);

    aa.setAcademiasIdAcademia(2);
    aa.setAlunosIdAluno(16);
    aa.setDataInclusao(new Date());
    lista.add(aa);

    aa.setAcademiasIdAcademia(2);
    aa.setAlunosIdAluno(17);
    aa.setDataInclusao(new Date());
    lista.add(aa);

    aa.setAcademiasIdAcademia(3);
    aa.setAlunosIdAluno(18);
    aa.setDataInclusao(new Date());
    lista.add(aa);

    aa.setAcademiasIdAcademia(3);
    aa.setAlunosIdAluno(19);
    aa.setDataInclusao(new Date());
    lista.add(aa);

    Iterator i = lista.iterator();
    while(i.hasNext())
    {
     aa = (academiaAluno) i.next();
      System.out.println(dao.incluir(aa));
    }
}
C

aliáo último que foi incluido na lista foi o único que foi incluído e só

sidneycarlos65

me corrijam se estiver errado, mas há necessidade desta linha ?:

this.getConexao().commit();
sidneycarlos65

Voce está adicionando o mesmo objeto na lista.

Crie um objeto para cada ID…

C

valeu cara era isso mesmo!!!obrigado a todos!!!

A

Boa tarde, meu nome é Amil, sou iniciante no fórum e estou aprendendo programar em Java, gostaria de pedir ajuda para resolver um problema em um programa que pretendo fazer, pois já fiz uma linha de código e esta copilando normalmente coma ferramenta eclipse. Porém gostaria de mudar a parte grafica em relação ao norte, ou seja, onde estão os dados que serão inseridos no arquivo de cadastro. Queria que quando clickar no botão cadastrar, abrisse uma segunda janela em que eu pudesse colocar esses dados dentro da janela e que fosse salvo em banco de dados. Estou enviando o programa completo desenvolvido com a ferramenta Eclipse.

import javax.swing.<em>;

import java.awt.</em>;

import java.awt.event.<em>;

import java.sql.</em>;

import <a href="http://java.io">java.io</a>.<em>;

import com.hxtt.sql.</em>;

public class Cadastro extends JFrame implements ActionListener{

//Campos
JTextField txtNome = new JTextField (25);
JTextField txtEndereco = new JTextField (25);
JTextField txtEmail = new JTextField (20);
JTextField txtFone = new JTextField ("",12);
JTextField txtCIC = new JTextField ("",14);
JTextField txtRg = new JTextField ("",12);
JTextArea txtResultado = new JTextArea("<<<< Resultados das ações >>>>");

//Botoes
JButton btCadastra = new JButton ("Cadastrar");	
JButton btLimpa = new JButton ("Limpar");
JButton btElimina = new JButton ("Eliminar");
JButton btPesquisa = new JButton ("Pesquisa");
JButton btAltera = new JButton ("Alterar");

//Grids de Layout
GridLayout grid1 = new GridLayout(6,2);
GridLayout grid2 = new GridLayout(1,5);
GridLayout grid3 = new GridLayout(1,1);

//Labels
JLabel lbNome = new JLabel ("Nome:");	
JLabel lbEndereco = new JLabel ("Endereço:");
JLabel lbEmail = new JLabel ("Email:");
JLabel lbFone = new JLabel ("Telefone:");
JLabel lbCIC = new JLabel ("CIC:");
JLabel lbRg = new JLabel ("RG:");

//Painel
JPanel painel1 = new JPanel();
JPanel painel2 = new JPanel();
JPanel painel3 = new JPanel();

public Cadastro(){
	super("Cadastro de Cliente - Manipulando DBF");		    
	setSize(400,260);
	setLocation(360,160);
	
	lbCIC.setToolTipText("Chave de Pesquisa");
			
	txtResultado.setSize(10,15);
	txtResultado.setEditable(false);
	txtResultado.setLineWrap(true);
			
	btCadastra.addActionListener(this);
	btLimpa.addActionListener(this);
	btElimina.addActionListener(this);
	btPesquisa.addActionListener(this);
	btAltera.addActionListener(this);
	
    painel1.add(lbNome);
    painel1.add(txtNome);
    painel1.add(lbEndereco);
    painel1.add(txtEndereco);
    painel1.add(lbEmail);
    painel1.add(txtEmail);	    
    painel1.add(lbFone);	    
    painel1.add(txtFone);
    painel1.add(lbCIC);	    
    painel1.add(txtCIC);
    painel1.add(lbRg);	    
    painel1.add(txtRg);
    
    //painel2.add(new JScrollPane(txtResultado));
    painel2.add(txtResultado);
    
    painel3.add(btCadastra);
    painel3.add(btLimpa);
    painel3.add(btPesquisa);
    painel3.add(btAltera);
    painel3.add(btElimina);	    
    
    painel1.setLayout(grid1);
    painel2.setLayout(grid2);
    painel3.setLayout(grid3);
    getContentPane().add(painel1,BorderLayout.NORTH);
    getContentPane().add(painel2,BorderLayout.CENTER);
    getContentPane().add(painel3,BorderLayout.SOUTH);	   
}

/**
 * @docRoot Método para seleção (SELECT)
 */	
public ResultSet selecao(String comando){
	ResultSet rs = null;
	try {
         //Registrar o Driver JDBC do banco de dados, neste caso estou usando o DBF
         String conexao = "com.hxtt.sql.dbf.DBFDriver";
         //Carrega o Driver a ser utilizado
         Class.forName(conexao).newInstance();
         //Indica o caminho do arquivo
         //eX.: C:\J2SDK1.4.1\BIN\
         String caminho = "E:/TABELAS/.";          
         // String de conexao para o DBF
         String url = "jdbc:DBF:/" + caminho;
         //Faz um SELECT no arquivo
         String sql = comando;
         //OBS.: Não coloque a extensão do arquivo, deixe sem .DBF
         //Abre uma conexão com o arquivo
         Connection conn = DriverManager.getConnection(url);
         // recuperar a classe Stamtemant a partir da conexao criada
         Statement stmt = conn.createStatement();
         //Retorna o resultado da Query
         rs = stmt.executeQuery(sql);	         
         //Pegar o valor da(s) coluna(a) já no tipo desejado String, int, Date, etc...
         while (rs.next()) {
        	 txtNome.setText((String) rs.getString("Nome"));
        	 txtEndereco.setText((String) rs.getString("Endereco"));
        	 txtFone.setText((String) rs.getString("Fone"));
        	 txtEmail.setText((String) rs.getString("Email"));
        	 txtCIC.setText((String) rs.getString("Cic"));
        	 txtRg.setText((String) rs.getString("Rg"));	        	 
         }
         rs.close();
         stmt.close();
         conn.close();	         
      } catch (Exception e) {
         //System.out.println("Oops-> " + e);
    	  txtResultado.setText("Oops-> " + e);
      }	     
      return rs;
}

/**
 * @docRoot Método para Update da Tabela (INSERT, DELETE)
 */
public int insercao(String comando){
	int rs = 0;
	try {
         //Registrar o Driver JDBC do banco de dados, neste caso estou usando o DBF
         String conexao = "com.hxtt.sql.dbf.DBFDriver";
         //Carrega o Driver a ser utilizado
         Class.forName(conexao).newInstance();
         //Indica o caminho do arquivo
         //eX.: C:\J2SDK1.4.1\BIN\
         String caminho = "E:/";          
         // String de conexao para o DBF
         String url = "jdbc:DBF:/E:/TABELAS/."; //+ caminho;
         //Faz um SELECT no arquivo
         String sql = comando;
         //OBS.: Não coloque a extensão do arquivo, deixe sem .DBF
         //Abre uma conexão com o arquivo
         Connection conn = DriverManager.getConnection(url);
         // recuperar a classe Stamtemant a partir da conexao criada
         Statement stmt = conn.createStatement();
         //Retorna o resultado da Query
         rs = stmt.executeUpdate(sql);
         //Pegar o valor da(s) coluna(a) já no tipo desejado String, int, Date, etc...        	         
         stmt.close();
         conn.close();	         
      } catch (Exception e) {
         //System.out.println("Oops-> " + e);
    	  txtResultado.setText("Oops-> " + e);
      }	     
      return rs;
}
public void actionPerformed(ActionEvent e){		
	if (e.getSource() == btCadastra){			
		String comando = ("Insert into cliente (nome, endereco, fone, email, cic, rg) " +
				"values ('" + txtNome.getText() + "','" + txtEndereco.getText()+ "','" 
				+ txtFone.getText() + "','" + txtEmail.getText()+ "','" + txtCIC.getText()
				+ "','" + txtRg.getText()+"')");
		
		int rs = insercao(comando);			
		//System.out.println("Executado: " + comando);
		txtResultado.setText("Executado: " + comando);
		if (rs==1)
			Limpar();
		else
			System.out.println("ERRO: Não foram gravadas as informações, verifique.");
	}else{
		if (e.getSource() == btPesquisa){			
			String comando = ("Select * from Cliente where (CIC='" + txtCIC.getText()+"')");
		
			ResultSet rs = selecao(comando);				
			//System.out.println("Executado: " + comando);
			txtResultado.setText("Executado: " + comando);
			
			try{					
				if (rs.wasNull()== true)
					//System.out.println("ERRO: Não foi encontrado registro do CIC: " + txtCIC.getText() + ", verifique.");
					txtResultado.setText("ERRO: Não foi encontrado registro do CIC: " + txtCIC.getText() + ", verifique.");
				}catch(Exception erro){
					//System.out.println("ERRO: NÃO INDETIFICADO.");
					txtResultado.setText("ERRO: NÃO INDETIFICADO.");
				}
		}else{
			if (e.getSource() == btElimina){			
				String comando = ("Delete from Cliente where (CIC='" + txtCIC.getText()+"')");
			
				int rs = insercao(comando);				
				//System.out.println("Executado: " + comando);
				txtResultado.setText("Executado: " + comando);
				if (rs==1)
					Limpar();
				else
					System.out.println("ERRO: Não foram deletadas as informações, verifique.");
			}else{
				if (e.getSource() == btAltera){			
					String comando = ("Update cliente SET nome='" + txtNome.getText() 
							+ "',endereco='" + txtEndereco.getText()
							+ "',fone='" + txtFone.getText() 
							+ "',email='" + txtEmail.getText()
							+ "',cic='" + txtCIC.getText()
							+ "',rg='" + txtRg.getText()+ "' where (CIC='" + txtCIC.getText()+"')");
				
					int rs = insercao(comando);				
					Limpar();
					//System.out.println("Executado: " + comando);
					txtResultado.setText("Executado: " + comando);
				}else{
					if (e.getSource() == btLimpa){
						Limpar();
						txtResultado.setText("<<<< Resultados das ações >>>>");
					}
				}
			}
		}
	}
}

/*
 * Limpa os dados do JFrame Cadastro
 */
public void Limpar(){
	txtNome.setText("");
	txtEndereco.setText("");
	txtEmail.setText("");
	txtFone.setText("");
	txtCIC.setText("");
	txtRg.setText("");		
	
	txtNome.requestFocus();
}

public static void main (String args[]){
	Cadastro c = new Cadastro();
	c.setVisible(true);
	c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}

Obrigado, aguardo resposta!!!

Criado 27 de fevereiro de 2009
Ultima resposta 1 de mar. de 2009
Respostas 7
Participantes 4