foreign key em pstm
Ola, preciso implementar um código de uma foreign key como no modelo
package Persistencia;
import Entidades.TipoDeComportamento;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Augusto
*/
public class TipoDeComportamentoDAO extends Conexao implements InterFaceDAO<TipoDeComportamento> {
@Override
public void salvar(TipoDeComportamento tipodecomportamento) {
String sqlInsert = "INSERT INTO TIPODECOMPORTAMENTO ( "
+ "CODIGO, "
+ "DESCRICAO "
+ ") VALUES (?,?);";
if (pesquisarSeExisteOTipoDeComportamento(tipodecomportamento)) {
System.out.print("Já existe um Tipo de Comportamento cadastrado com este Código no Banco de Dados. ");
System.out.println("( " + tipodecomportamento.getCodigotipo() + " | " + buscarPorID(tipodecomportamento.getCodigotipo()).getDescricao() + " )");
} else {
try {
pstm = abrirConexaoComBD().prepareStatement(sqlInsert);
pstm.setInt(1, tipodecomportamento.getCodigotipo());
pstm.setString(2, tipodecomportamento.getDescricao());
pstm.execute();
pstm.close();
fecharConexaocomBD();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@Override
public void deletar(TipoDeComportamento tipodecomportamento) {
String sqlDeletar = "DELETE FROM TIPODECOMPORTAMENTO WHERE CODIGO = ?";
try {
pstm = abrirConexaoComBD().prepareStatement(sqlDeletar);
pstm.setInt(1, tipodecomportamento.getCodigotipo());
pstm.execute();
pstm.close();
fecharConexaocomBD();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void update(TipoDeComportamento tipodecomportamento) {
String sql = "UPDATE TIPODECOMPORTAMENTO SET DESCRICAO=? where CODIGO=?";
try {
pstm = abrirConexaoComBD().prepareStatement(sql);
pstm.setString(1, tipodecomportamento.getDescricao());
pstm.setInt(2, tipodecomportamento.getCodigotipo());
pstm.execute();
pstm.close();
fecharConexaocomBD();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public TipoDeComportamento buscarPorID(Integer id) {
String sqlPesquisarPorId = "SELECT * FROM TIPODECOMPORTAMENTO WHERE CODIGO = ?";
TipoDeComportamento tipodecomportamento = new TipoDeComportamento();
try {
pstm = abrirConexaoComBD().prepareStatement(sqlPesquisarPorId);
pstm.setInt(1, id);
ResultSet list = pstm.executeQuery();
while (list.next()) {
tipodecomportamento.setCodigotipo(list.getInt("CODIGO"));
tipodecomportamento.setDescricao(list.getString("DESCRICAO"));
}
pstm.close();
list.close();
fecharConexaocomBD();
} catch (SQLException e) {
e.printStackTrace();
}
return tipodecomportamento;
}
@Override
public List<TipoDeComportamento> listarTodos() {
String sql = "SELECT * FROM TIPODECOMPORTAMENTO";
List<TipoDeComportamento> listadostiposdecomportamentos = new ArrayList<TipoDeComportamento>();
try {
pstm = abrirConexaoComBD().prepareStatement(sql);
ResultSet lista = pstm.executeQuery();
while (lista.next()) {
TipoDeComportamento tipodecomportamento = new TipoDeComportamento();
tipodecomportamento.setCodigotipo(lista.getInt("CODIGO"));
tipodecomportamento.setDescricao(lista.getString("DESCRICAO"));
listadostiposdecomportamentos.add(tipodecomportamento);
}
pstm.close();
lista.close();
fecharConexaocomBD();
} catch (SQLException e) {
e.printStackTrace();
}
return listadostiposdecomportamentos;
}
public boolean pesquisarSeExisteOTipoDeComportamento(TipoDeComportamento tipodecomportamento) {
boolean teste = false;
List<TipoDeComportamento> lista = listarTodos();
for (TipoDeComportamento tipo : lista) {
if (tipo.getCodigotipo().equals(tipodecomportamento.getCodigotipo())) {
teste = true;
}
}
return teste;
}
}
package Persistencia;
import Entidades.Comportamento;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Augusto
*/
public class ComportamentoDAO extends Conexao implements InterFaceDAO<Comportamento> {
TipoDeComportamentoDAO daotipodecomportamento = new TipoDeComportamentoDAO();
@Override
public void salvar(Comportamento comportamento) {
if (pesquisarSeExisteOComportamento(comportamento)) {
System.out.print("Já existe o comportamento cadastrado com este Código no Banco de Dados. ");
System.out.println("( " + comportamento.getCodigo() + " | " + buscarPorID(comportamento.getCodigo()).getDescricao() + " )");
} else {
String sqlInsert = "INSERT INTO COMPORTAMENTO ("
+ "CODIGODOCOMPORTAMENTO, "
+ "DESCRICAO, "
+ "TIPODECOMPORTAMENTO )"
+ "VALUES (?,?,?);";
try {
pstm = abrirConexaoComBD().prepareStatement(sqlInsert);
pstm.setInt(1, comportamento.getCodigo());
pstm.setString(2, comportamento.getDescricao());
// AQUI ---------------------------------------------------------------------------------------------------------------------------------
pstm.setInt(3, comportamento.getTipodocomportamento().getCodigotipo());
// AQUI ---------------------------------------------------------------------------------------------------------------------------------
pstm.execute();
pstm.close();
fecharConexaocomBD();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@Override
public void deletar(Comportamento entidade) {
String sqlDeletar = "DELETE FROM COMPORTAMENTO WHERE CODIGO = ?";
try {
pstm = abrirConexaoComBD().prepareStatement(sqlDeletar);
pstm.setInt(1, entidade.getCodigo());
pstm.execute();
pstm.close();
fecharConexaocomBD();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void update(Comportamento entidade) {
String sql = "UPDATE COMPORTAMENTO SET " + "CODIGO=?, " + "DESCRICAO=?, " + "TIPODECOMPORTAMENTO=? " + "WHERE CODIGO=?";
try {
pstm = abrirConexaoComBD().prepareStatement(sql);
pstm.setInt(1, entidade.getCodigo().get);
pstm.setString(2, entidade.getDescricao());
pstm.setInt(3, entidade.getTipodocomportamento().getCodigotipo());
pstm.execute();
pstm.close();
fecharConexaocomBD();
} catch (SQLException e) {
e.printStackTrace();
}
}
public Comportamento buscarPorID(Integer id) {
String sqlPesquisarPorId = "SELECT * FROM COMPORTAMENTO WHERE CODIGO = ?";
Comportamento comportamento = new Comportamento();
try {
pstm = abrirConexaoComBD().prepareStatement(sqlPesquisarPorId);
pstm.setInt(1, id);
ResultSet lista = pstm.executeQuery();
while (lista.next()) {
comportamento.setCodigo(lista.getInt("CODIGO"));
comportamento.setDescricao(lista.getString("DESCRICAO"));
comportamento.setTipodocomportamento(daotipodecomportamento.buscarPorID(lista.getInt("TIPODECOMPORTAMENTO")));
}
pstm.close();
lista.close();
fecharConexaocomBD();
} catch (SQLException e) {
e.printStackTrace();
}
return comportamento;
}
public List<Comportamento> listarTodos() {
String sql = "SELECT * FROM COMPORTAMENTO";
List<Comportamento> listadecomportamentos = new ArrayList<Comportamento>();
try {
pstm = abrirConexaoComBD().prepareStatement(sql);
ResultSet lista = pstm.executeQuery();
while (lista.next()) {
Comportamento comportamento = new Comportamento();
comportamento.setCodigo(lista.getInt("CODIGO"));
comportamento.setDescricao(lista.getString("DESCRICAO"));
comportamento.setTipodocomportamento(daotipodecomportamento.buscarPorID(lista.getInt("TIPODECOMPORTAMENTO")));
listadecomportamentos.add(comportamento);
}
pstm.close();
lista.close();
fecharConexaocomBD();
} catch (SQLException e) {
e.printStackTrace();
}
return listadecomportamentos;
}
public boolean pesquisarSeExisteOComportamento(Comportamento comportamento) {
boolean teste = false;
List<Comportamento> lista = listarTodos();
for (Comportamento tipo : lista) {
if (tipo.getCodigo().equals(comportamento.getCodigo())) {
teste = true;
}
}
return teste;
}
}
Não estou sabendo como funciona para extrair a sintaxe da entidade. colocar esse segundo get se alguém sobre onde tem uma explicação.Discussão (0)
Carregando comentários...