Estou desenvolvendo meu primeiro sistema de banco em java. Uso o eclipse e mysql.
Encontrei uma duvida como eu faço uma primary key com auto incremento na classe ?
Tentei usar um atributo static para ir incrementando a cada objeto criado.
Mas não deu certo …
Pois cada vez que eu rodo o programa ele zera.
Alguem sabe como eu devo fazer isso …
Vou postar meu codigo.
package filipe.modelo;
public class Filme {
private String nome;
private String genero;
private String lancamento;
private String faixaEtaria;
private double diaria;
private static long ID;
private long id;
public Filme() {
id = ID++;
}
public double getDiaria() {
return diaria;
}
public void setDiaria(double diaria) {
this.diaria = diaria;
}
public String getFaixaEtaria() {
return faixaEtaria;
}
public void setFaixaEtaria(String faixaEtaria) {
this.faixaEtaria = faixaEtaria;
}
public String getGenero() {
return genero;
}
public void setGenero(String genero) {
this.genero = genero;
}
public String getLancamento() {
return lancamento;
}
public void setLancamento(String lancamento) {
this.lancamento = lancamento;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public long getId() {
return id;
}
}
package filipe.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import filipe.jdbc.FabricaDeConexao;
import filipe.modelo.Filme;
public class FilmeDAO {
Connection conexao;
public FilmeDAO() throws SQLException {
conexao = FabricaDeConexao.getConnection();
}
public void adiciona(Filme filme) throws SQLException {
String sql = "INSERT INTO filmes (nome,genero,lancamento,faixa_etaria,diaria) VALUES (?,?,?,?,?)";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setLong(1, filme.getId());
stmt.setString(2, filme.getNome());
stmt.setString(3, filme.getGenero());
stmt.setString(4, filme.getLancamento());
stmt.setString(5, filme.getFaixaEtaria());
stmt.setDouble(6, filme.getDiaria());
stmt.execute();
stmt.close();
}
public void altera(Filme filme) {
}
public void remove(Filme filme) {
}
public List<Filme> listaFilmes() {
return null;
}
}
package filipe.testes;
import java.sql.SQLException;
import java.util.Scanner;
import filipe.dao.FilmeDAO;
import filipe.modelo.Filme;
public class TestaAdiciona {
public static void main(String[] args) throws SQLException {
Scanner teclado = new Scanner(System.in);
Filme filme = new Filme();
System.out.print("Nome: ");
filme.setNome(teclado.nextLine());
System.out.print("Genero: ");
filme.setGenero(teclado.nextLine());
System.out.print("Lançamento: ");
filme.setLancamento(teclado.nextLine());
System.out.print("Faixa Etaria: ");
filme.setFaixaEtaria(teclado.nextLine());
System.out.print("Diaria: ");
filme.setDiaria(teclado.nextDouble());
FilmeDAO filmeDAO = new FilmeDAO();
filmeDAO.adiciona(filme);
System.out.println("Filme Gravado!");
}
}