Ir para conteúdo

POWERED BY:

Arquivado

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

Kandrade

Acesso a Dados - JDBC - Parte II

Recommended Posts

Para entender esse tutorial é necessária a leitura da primeira parte encontrada nesse mesmo fórum.

 

Precisamos criar um database chamado db_meusClientes. Para isso abra o MS Sql Server Management Studio, conecte em seu servidor, click com o botão direito em Databases, escolha new Database...

Preencha o campo Database name com: db_meusClientes e click no botão ok.

 

Com o Database criado precisamos criar uma tabela chamada tb_cliente como os seguintes campos:

id_cliente -> bigint

nome -> varchar(255)

endereco -> varchar(255)

telefone -> varchar(50)

 

Criei o script para quem quiser executar mais rapidamente:

 

USE [db_meusClientes]
GO

/****** Object:  Table [dbo].[tb_cliente]    Script Date: 08/02/2009 12:42:19 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[tb_cliente](
	[id_cliente] [bigint] IDENTITY(1,1) NOT NULL,
	[nome] [varchar](255) NOT NULL,
	[endereco] [varchar](255) NOT NULL,
	[telefone] [varchar](50) NOT NULL,
 CONSTRAINT [PK_tb_cliente] PRIMARY KEY CLUSTERED 
(
	[id_cliente] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

Agora vamos inserir um cliente em nosso banco.

Segue o código abaixo:

 

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

/**
 *
 * @author kandrade
 */
public class InsereCliente {
    public static void main(String[] args){
        try {
            // recebe uma conexao da nossa fabrica
            Connection c = ConnectionFactory.getConnection();
            // monta a sql
            String query = "INSERT INTO tb_cliente (nome,endereco,telefone) VALUES(?,?,?)";
            PreparedStatement pstmt = c.prepareStatement(query);

            // um cliente
            pstmt.setString(1, "Joao da Silva");
            pstmt.setString(2, "Rua Paraguai N. 1093");
            pstmt.setString(3, "(11)333-3333");

            pstmt.execute();
            pstmt.close();

            System.out.println("Cliente gravado com sucesso!");
            c.close();

        } catch (SQLException ex) {
            ex.printStackTrace();
        }

    }
}

Para listar todos os clientes:

 

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

/**
 *
 * @author kandrade
 */
public class ListaClientes {
    public static void main(String[] args){
        try {
            //
            Connection c = ConnectionFactory.getConnection();
            //
            String query = "SELECT *FROM tb_cliente";
            PreparedStatement pstmt = c.prepareStatement(query);

            ResultSet rs = pstmt.executeQuery();
            while(rs.next()){
                System.out.println("Cliente: " + rs.getString("nome"));
                System.out.println("Endereco: " + rs.getString("endereco"));
                System.out.println("Telefone: " + rs.getString("telefone"));
                System.out.println();
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}

Vamos agora criar um JavaBean para essa tabela. Esse Bean será muito útil para a classe que criaremos a seguir.

JavaBeans são classes que possui apenas o construtor padrão e os métodos set e get para seus respectivos atributos.

Uma definição mais precisa pode ser encontrada aqui:

http://en.wikipedia.org/wiki/JavaBeans

 

A classe JavaBean ficará assim:

 

/**
 *
 * @author kandrade
 */
public class Cliente {
    private Long id;
    private String nome;
    private String endereco;
    private String telefone;

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

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

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

    /**
     * @return the endereco
     */
    public String getEndereco() {
        return endereco;
    }

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

    /**
     * @return the telefone
     */
    public String getTelefone() {
        return telefone;
    }

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

}

No próximo tutorial irei explicar alguns métodos utilizados acima e faremos uma classe que intermediará o acesso ao banco de dados. Essa classe vai fazer um bom uso do Bean aqui criado.

Vamos aguardar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

este codigo so me permite inserir um dado de cada vez

é que eu estou a fazer um trabalho da escola que é um programa de gestao de stocks

 

eu tenho uma parte do pograma que é a parte de facturação onde eu so estou a conseguir por um so produto por cada factura

e gostaria que me ajudassem a por mais do que um

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma classe com toda a loógica de banco (DAO) inclusive a de inserção.

 

método de inserção:

            // obtem conexao com o banco
            String query = "INSERT INTO tb_cliente (nome,endereco,telefone) VALUES(?,?,?)";
            PreparedStatement pstmt = c.prepareStatement(query);

            // um cliente
            pstmt.setString(1, cliente.getNome());
            pstmt.setString(2, cliente.getEndereco());
            pstmt.setString(3, cliente.getTelefone());

            pstmt.execute();
            pstmt.close();

            System.out.println("Cliente gravado com sucesso!");
            // fecha conexao

Onde cliente neste caso é um objeto (uma instancia de) Cliente que deve ser recebido pelo método.

 

Depois disso, sempre que quiser inserir é só preencher o objeto e passar para esse método que o insere no banco.

 

Quer inserir vários?

Como vai obter os valores a serem iseridos?

 

  Em 01/07/2010 at 19:21, 'Pedroalves' disse:

eu tenho uma parte do pograma que é a parte de facturação onde eu so estou a conseguir por um so produto por cada factura

e gostaria que me ajudassem a por mais do que um

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

o meu problema a insirir dados varios dados atravez de uma tabela

se utilizar o textfield consigo mas não estou a conseguir é atravez da utilização da tabela

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.