Olá a todos estou criando uma nova aplicação e quero fazer da forma mais simples e correta, e nisso várias dúvidas apareceram.
criei as seguintes classes:
public class ConnectionFactory extends CarArquivoBanco{
private static Connection conemysql=null;
private ConnectionFactory(){
super();
}
public void CriaConexao() throws ClassNotFoundException, SQLException{
Class.forName("com.mysql.jdbc.Driver");
conemysql = DriverManager.getConnection("jdbc:mysql://"+servidor+":"+porta+"/"+banco,user,senha);
}
public static Connection getconemysql() throws SQLException, ClassNotFoundException {
if(conemysql == null ){
ConnectionFactory rara = new ConnectionFactory();
rara.CriaConexao();
}
return conemysql;
}
}
Como é um sistema desktop achei melhor utilizar sempre a mesma conexão, fiz de acordo com alguns exemplos.
Tenho duas tabelas no meu banco de dados, criei duas classes modelos:
public class Unidade {
private int uni_codigo;
private String uni_nome;
private int uni_tipo;
private int uni_prod; ///somente o codigo do produto
//gets e sets
}
public class Produto {
private int prod_cod;
private String prod_nome;
//gets e sets
}
Criei duas classes DAO:
public class UnidadeDAO implements Serializable {
private Connection connection;
public UnidadeDAO(){
try {
this.connection = conexao.ConnectionFactory.getconemysql();
} catch (SQLException ex) {
Logger.getLogger(UnidadeDAO.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(UnidadeDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
public boolean deleta(Unidade unid) throws SQLException{}
public void adiciona(Unidade unid) throws SQLException {}
public List loadAll() throws SQLException {}
}
public class ProdutoDAO {
private Connection connection;
public ProdutoDAO(){
try {
this.connection = conexao.ConnectionFactory.getconemysql();
} catch (SQLException ex) {
Logger.getLogger(UnidadeDAO.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(UnidadeDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
public boolean deleta(Produto prod) throws SQLException{}
public void adiciona(Produto prod) throws SQLException {}
public List loadAll() throws SQLException {}
}
E ai surgiu a minha dúvida, no meu metodo Unidade.loadAll(), ira me retornar um List com o codigo do produto, mas na realidade eu quero mostrar o nome do produto. Como eu faço isso?
Li algo sobre VO, mas nada muito claro, sem nenhum exemplo simples de entender. Sei que posso criar um metodo com um select que me retorna o campo nome do produto mas em qual classe eu faço isso? E quando vou alterar o produto onde coloco o metodo pra isso?
Acredito q muitos outros iniciantes na linguagem tem essa mesma dúvida!
Desde já, obrigado.