Pegar Campo ID do Banco de Dados

19 respostas
douglasduarte360

Ola pessoal, na minha aplicação tem uma tela de cadastro.
a minha duvida é, como faço para o ID seguir na ordem??

basicamente essa sera a tela

ID ***
Nome:****

Cadastrou o 1º nome o ID vai para 1.
Cadastrou o 2° nome o ID vai para 2.

Ja tem o banco criado, e ja esta salvando, estou utilizando o NetBeans

19 Respostas

Marlon_Meneses

coloque o id do banco como autoincremet

Rodrigo_Sasaki

Qual banco de dados você está usando? E como está persistindo o objeto ?

Marlon_Meneses

coloque o id da tabela como autoincrement

Hebert_Coelho

Rodrigo Sasaki:
Qual banco de dados você está usando? E como está persistindo o objeto ?
+1

Se for Oracle ou Postgres não tem autoincremento.

douglasduarte360

Banco SQL, estou Utilzando o Hibernate

Rodrigo_Sasaki

Tá certo. é um banco SQL, correto?

Agora qual? MySQL? Oracle? SQL Server? PostgreSQL?

Hebert_Coelho

douglasduarte360:
Banco SQL, estou Utilzando o Hibernate
:shock: :shock: :shock: :shock:

Oracle, MySQL, Postgres, SQL Server, HSQLDB, Derby? Isso são bancos.

JeffersonFelix

Na sua entidade, marque o field id como @Id @GeneratedValue(strategy=GenerationType.AUTO)

Banco SQL???

douglasduarte360

SQL Server

JeffersonFelix

ok, no SQL Server parece que o campo deve ser marcado como identity. Mas no hibernate é aquilo lá que eu te passei.

douglasduarte360

No Banco ja alterei para Identity, mas agora estou tentando encontrar onde devo colocar: @Id @GeneratedValue(strategy=GenerationType.AUTO)
estou começando agora com java. :slight_smile:

romarcio

douglasduarte360:
No Banco ja alterei para Identity, mas agora estou tentando encontrar onde devo colocar: @Id @GeneratedValue(strategy=GenerationType.AUTO)
estou começando agora com java. :slight_smile:

O que “No Banco já alterei para Identity” ? Onde e como fez isso?

Isso deve ser feito na anotação do hibernate: @Id @GeneratedValue(strategy=GenerationType.Identity)

douglasduarte360

romarcio

O que “No Banco já alterei para Identity” ? Onde e como fez isso?


O campo ID na minha tabela la no banco de dados não estava como Identity. ai alterei la.
Estou tentando encontrar la no hibernate para colocar:@Id @GeneratedValue(strategy=GenerationType.Identity)
mas e ai, quando eu colocar la no hibernate?
como vou setar para aparecer na aplicação? da para setar em um jLabel?

romarcio

Agora você vai precisar montar uma consulta que retorne o ID de alguma linha da tabela. Pode mostrar em um label ou mesmo no console da sua IDE.

douglasduarte360

Tem algum modelo ou exemplo de como monta essa consulta ?

Marlon_Meneses

não precisa.
depois que voce criar o objeto e persistir, ele já vem com o id, por exemplo

Teste t = new Teste();
 t.setCampo("teste");
 em.persist(t);
 System.out.print(t.getId());

ele já retorna o id

romarcio

douglasduarte360:
Tem algum modelo ou exemplo de como monta essa consulta ?

Você está lendo o manual do Hibernate? Nele tem exemplos, mas vou te passar uns tutoriais sobre Hibernate: <a href’http://mballem.wordpress.com/category/hibernate-jpa/’>Hibernate / JPA

douglasduarte360

não precisa.
depois que voce criar o objeto e persistir, ele já vem com o id, por exemplo

Teste t = new Teste();
 t.setCampo("teste");
 em.persist(t);
 System.out.print(t.getId());

ele já retorna o id

Eu coloco esse codigo no Label ?

douglasduarte360

Pessoal não estou conseguindo me ajudem aiii.
Referente a isso, ja fiz.

JeffersonFelix:
Na sua entidade, marque o field id como @Id @GeneratedValue(strategy=GenerationType.AUTO)

Banco SQL????
public class Despesas implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID", nullable = false)
    private Long id;
    @Column(name = "Despesas")
    private String despesas;
A consulta também ja fiz, essa é a parte da Minha classe DAO, onde é feito o insert das pessos. Acredito que seja isso.
public void buscaid(Despesas buscaid){
         String sql = "SELECT TOP 1 ID FROM Despesas ORDER BY  ID DESC";
         try {
             try (PreparedStatement stmt = connection.prepareStatement(sql)) {
                 stmt.setString(2, buscaid.getDespesas());
                 


stmt.execute();
             }

                               } catch (SQLException u) {
                                               throw new RuntimeException(u);
        }
         
     }

Mas agora não sei o que fazer

Criado 17 de dezembro de 2012
Ultima resposta 18 de dez. de 2012
Respostas 19
Participantes 6