Dúvida sobre associações

Bom Dia ! Estou com um problema relacionado a associação entre algumas classes que tenho… Encurtei os meus códigos para facilitar a análise…

Estou desenvolvendo um aplicativo para clínicas odontológicas, aonde tenho o cadastro de Pacientes, Dentistas e Funcionário… Criei além de suas respectivas classes, outras chamadas Pessoa Física, Contato e Endereço e crie uma associação entre elas. (Aonde Paciente tem 1 contato, 1 endereço e etc…)


ackage Modelo;

import java.sql.*;


public class Paciente {

      private Connection conexao;

      public Paciente(){
            Conexao con = new Conexao();
            conexao = con.getConexao();
        }

 
	private int id;
	 
	private String responsavel;
	 
        private String indicacao;
	 
	private Endereco endereco;

        private Contato contato;

        private PessoaFisica pessoaFisica;

// Aqui vem os SET's e GET's



    public void inserir(){
try{
    PreparedStatement inserir = conexao.prepareStatement("insert into paciente(nomecompleto, naturalidade) values (?,?)");
    inserir.setString(1, pessoaFisica.getNomeCompleto());
    inserir.setString(2, pessoaFisica.getNaturalidade());
    inserir.execute();
    inserir.close();
}
 catch(Exception erro) {
                erro.printStackTrace();
        }
    }

[b]DÚVIDA:

Tenho uma interface em HTML com textfield para todos os atributos… O meu problema agora está na Servlet.
Como irei atribuir os valores das caixas de texto do Html no meu atributo pessoa física da classe Paciente??[/b]

O que havia feito minha servlet era isto daqui


             Paciente pa = new Paciente();
             PessoaFisica p = new PessoaFisica();
             p.setNomeCompleto(request.getParameter("nomeCompleto"));
             p.setNaturalidade(request.getParameter("naturalidade"));
             pa.inserir();

Mas… Da erro de :
java.lang.NullPointerException
at Modelo.Paciente.inserir(Paciente.java:166)

Sendo a linha 166 esta:
inserir.setString(1, pessoaFisica.getNomeCompleto());

Obrigada!

Tente assim:

    Paciente pa = new Paciente();
             PessoaFisica p = new PessoaFisica();
             p.setNomeCompleto(request.getParameter("nomeCompleto"));
             p.setNaturalidade(request.getParameter("naturalidade"));
           p.inserir; // salve a pessoaFisica e depois o Paciente
             pa.inserir();

Têm esse lance de gravar quem está com os dados pra depois salvar o outro e não dar problema com a existência do objeto salvo no banco, senão não vai conseguir salvar o outro. =)
Abraço!

Guevara,

Não entendi muito bem…
Dentro da minha classe pessoa física eu teria que ter uma método para salvar os seus atributos… ? Como iria administrar isto, pois pessoa física estará em tabelas diferentes (Funcionários, Pacientes e Dentistas…)
Qual seria a modificação que teria que fazer no meu método inserir na classe Pacientes?

Obrigada!

Att.,
Verônica Silva

Mas o seu sql ali é só para inserir em Paciente, com vc faz pra inserir os dados que são de PessoaFisica? Teria que instanciar pessoaFisica e ter um sql para persistir esses dados tb não?
Não rola usar ferramenta de persistência tipo Hibernate?
[]s