Porque o Insert abaixo não funciona?

14 respostas
A
public void inserir(cliente clientelocal){
	
		
	final String DRIVER = "org.postgresql.Driver";
	final String URL = "jdbc:postgresql://localhost:5432/postgres?user=postgres&password=123456";
	
	try
	{
		Class.forName(DRIVER);
		Connection connection = DriverManager.getConnection(URL);
	//	JOptionPane.showMessageDialog(null," Conexao realizada com sucesso");
		Statement st = connection.createStatement();
//			st.execute(“insert into cliente (codigo) values (” + clientelocal.getCodigo() + ") ");

<a href="//st.execute">//st.execute</a>(“insert into cliente (codigo) values (” + clientelocal.getCodigo() + ") ");

st.execute(“insert into cliente (codigo) values (” + clientelocal.getCodigo() + ") ");

JOptionPane.showMessageDialog(null,“insert into cliente (codigo) values (” + clientelocal.getCodigo() + ") ");
st.close();
		connection.close();
	}
	 catch ( Exception e ) {
		e.printStackTrace();
	}
	
}

14 Respostas

A

Ele não retorna nenhum Erro simplesmente não insere, meu banco de dados é o PostGre

furutani

O auto-commit está ativado?
Na duvida dá um commit

connection.commit()
altitdb

Cara…

pode postar o codigo de onde vc chama esse metodo de inserir??

xD~~

A

coloquei o connection.commit(); depois do
st.execute(“insert into cliente (codigo) values (” + clientelocal.getCodigo() + ") ");
e nada,

conheço muito pouco de java, tem outra ideia?

A

Segue

package cliente;

import javax.swing.SwingUtilities;

import java.awt.BorderLayout;
import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JFrame;

import javax.swing.JButton;

import java.awt.Rectangle;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import javax.swing.JTextField;

import javax.swing.JLabel;

import java.awt.event.KeyEvent;

import javax.swing.JComboBox;

public class clientemain extends JFrame {

//para conectar
public cliente meucliente;
public clienteDAO meuclienteDAO;

private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JButton jButton = null;
private JTextField jTextField = null;
private JLabel jLabel = null;
/**
 * This method initializes jButton	
 * 	
 * @return javax.swing.JButton	
 */
private JButton getJButton() {
	if (jButton == null) {
		jButton = new JButton();
		jButton.setBounds(new Rectangle(186, 112, 79, 34));
		jButton.setMnemonic(KeyEvent.VK_UNDEFINED);
		jButton.setText("Enviar");
		jButton.setName("");
		
		jButton.addMouseListener(new java.awt.event.MouseAdapter() {
			public void mouseClicked(java.awt.event.MouseEvent e) {
				System.out.println("mouseClicked()"); // TODO Auto-generated Event stub mouseClicked()
				//Evento Onclic
				meucliente.setCodigo(Integer.parseInt(jTextField.getText()));
				
				//meucliente.validar();
				
				//if chamar o metodo da classe cliente e la chamar a classe Dao {
				meuclienteDAO.inserir(meucliente);
			}
		});
	}
	return jButton;
}

/**
 * This method initializes jTextField	
 * 	
 * @return javax.swing.JTextField	
 */
private JTextField getJTextField() {
	if (jTextField == null) {
		jTextField = new JTextField();
		jTextField.setBounds(new Rectangle(86, 16, 126, 25));
	}
	return jTextField;
}

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	SwingUtilities.invokeLater(new Runnable() {
		public void run() {
			clientemain thisClass = new clientemain();
			thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			thisClass.setVisible(true);
		}
	});
}

/**
 * This is the default constructor
 */
public clientemain() {
	super();
	meucliente = new cliente();
	meuclienteDAO = new clienteDAO();
	initialize();
}

/**
 * This method initializes this
 * 
 * @return void
 */
private void initialize() {
	this.setSize(300, 200);
	this.setContentPane(getJContentPane());
	this.setTitle("JFrame");
}

/**
 * This method initializes jContentPane
 * 
 * @return javax.swing.JPanel
 */
private JPanel getJContentPane() {
	if (jContentPane == null) {
		jLabel = new JLabel();
		jLabel.setBounds(new Rectangle(11, 14, 63, 28));
		jLabel.setText("Nome");
		jContentPane = new JPanel();
		jContentPane.setLayout(null);
		jContentPane.add(getJButton(), null);
		jContentPane.add(getJTextField(), null);
		jContentPane.add(jLabel, null);
	}
	return jContentPane;
}

} // @jve:decl-index=0:visual-constraint=“160,71”

altitdb

Cara...
vc tem certeza que o metodo do Seu botão está sendo executado??
Da uma conferida nisso, outra coisa...
Coloca seu codigo entre as TAGs "[code]" pra ficar mais facil de ler e entender!!

xD~~

renamed

Por favor, utilize a tag Code para inserrir codigo, fica mais legivel e assim outras pessoas ajudarao vc

A

Quando clico no botão

JOptionPane.showMessageDialog(null,"insert into cliente (codigo) values (" + clientelocal.getCodigo() + ") ");

esse código que esta no DAO retorna o valor digitado é isso.

A

Segue codigo

altitdb

Cara…

Qdo vc pressiona o Jbutton…
ele não dá erro algum,
mas, quando vc pressiona novamente ele da erro.

Coloca o Driver do Postgree nas suas bibliotecas que vai resolver seu problema.

Pelo menos foi isso que deu aqui!!

xD~~

altitdb

http://jdbc.postgresql.org/download.html

Ta ae o link pra vc baixar o Driver…

aqui só não inseriu porque eu nao tenho o banco mais no seu vai dar certo!!

blzaa!!

xD~~

A

Olá a conexão ja esta correta e o .jar do postgree no projeto

este é o codigo de conexao e ele informa que a conexao ja esta correta.

package cone;

//package Loja.Conexao;
import java.sql.*;

import javax.swing.*;

class Conexao {

public static void main(String[]args)
{

	final String DRIVER = "org.postgresql.Driver";
	final String URL = "jdbc:postgresql://localhost:5432/postgres?user=postgres&password=123456";
    
	try
	{
		Class.forName(DRIVER);
		Connection connection = DriverManager.getConnection(URL);
		JOptionPane.showMessageDialog(null," Conexao realizada com sucesso");
		
	}
	catch(ClassNotFoundException erro)
	{
		JOptionPane.showMessageDialog(null,"problemas driver nao encontrado");
	}	
	catch(SQLException erro)
	{
		JOptionPane.showMessageDialog(null,"problemas na conexao 1");
	}	
	
}

}

A

encontrei o erro na conexão a anta não estava colocando o nome da base de dados, a conexão estava ok mas não com a base heheh

final String URL = "jdbc:postgresql://localhost:5432/sac?user=postgres&password=123456";

Obrigado.

altitdb

Então, eh q eu abri seu projeto aqui e estava dando erro no Driver!!

por isso disse isso…

xD~~

PS: Tags CODE use por favor o//

Criado 28 de novembro de 2009
Ultima resposta 28 de nov. de 2009
Respostas 14
Participantes 4