Ola a todos estou com a seguinte duvida tenho o seguinte metodo na DAO:
public ArrayList<Nome_Database> getNomeDB() throws SQLException, NamingException, ClassNotFoundException {
con = H2_Connection.getConexao();
ArrayList<Nome_Database> ndb = new ArrayList<>();
ResultSet rs;
try {
pstm = con.prepareStatement("SELECT TABLE_NAME FROM information_schema.tables WHERE table_schema = 'TABELAS_INFO'");
rs = pstm.executeQuery();
while (rs.next()) {
Nome_Database d_name = new Nome_Database();
d_name.setNomeDB(rs.getString("TABLE_NAME"));
ndb.add(d_name);
}
return ndb;
} catch (JdbcSQLException e) {
e.printStackTrace();
return null;
} catch (SQLException ex) {
ex.printStackTrace();
return null;
}
}
public ArrayList<Empresa> getCaminhoBanco() throws SQLException, NamingException, ClassNotFoundException {
con = H2_Connection.getConexao();
ArrayList<Empresa> script = new ArrayList<>();
ResultSet rs;
try {
pstm = con.prepareStatement("SELECT COLUMN_NAME FROM information_schema.columns WHERE table_schema = 'TABELAS_INFO';");
rs = pstm.executeQuery();
while (rs.next()) {
Empresa caminho = new Empresa();
caminho.setEmpresa(rs.getString("COLUMN_NAME"));
script.add(caminho);
}
return script;
} catch (JdbcSQLException e) {
e.printStackTrace();
return null;
} catch (SQLException ex) {
ex.printStackTrace();
return null;
}
}
Que me devolve somente o nome das tabelas no banco e o outro que me devolve apenas o nome das colunas
e tenho este terceiro que desejo completar, que recebe o nome de uma tabela que foi encontrada pelo meu metodoDAO que lista o nome das tabelas e exibe o nome das colunas desta tabela
public ArrayList<Empresa> getCaminhoEmpresa() throws SQLException, NamingException, ClassNotFoundException {
ScriptControle controle = new ScriptControle();
con = H2_Connection.getConexao();
ArrayList<Empresa> script = new ArrayList<>();
ResultSet rs;
try {
pstm = con.prepareStatement("SELECT COLUMN_NAME FROM information_schema.columns WHERE table_name = '"+COMPLETARAQUI +"';");
rs = pstm.executeQuery();
while (rs.next()) {
Empresa caminho = new Empresa();
caminho.setEmpresa(rs.getString("COLUMN_NAME"));
script.add(caminho);
}
return script;
} catch (JdbcSQLException e) {
e.printStackTrace();
return null;
} catch (SQLException ex) {
ex.printStackTrace();
return null;
}
}
meus controles
public ArrayList<Nome_Database> selectedNomeDB_CB() throws SQLException, NamingException, ClassNotFoundException {
return dao.getNomeDB();
}
public ArrayList<Empresa> selectedCaminhoEmpresa() throws SQLException, NamingException, ClassNotFoundException {
return dao.getCaminhoEmpresa();
}
e tenho o seguinte jsf:
<div class="f2">
<label class="title"> NOME DA BASE </label><br></br><br></br>
<label class="fname"> Nome: <p:inputText value="#{scriptControle.n_db.nomeDB}" required="true" />
<h:commandButton value ="SALVAR" class ="btnAction" action="#{scriptControle.addNomeBanco()}"/>
<br></br><br></br>
Bases: <h:selectOneMenu id="base" value="#{scriptExec.selectedBase}" valueChangeListener="#{scriptControle.selectedCaminhoBanco_CB()}" >
<f:selectItem itemLabel="Selecione" />
<f:selectItems value="#{scriptControle.selectedNomeDB_CB()}" />
<f:ajax event="change" render="empresa" />
</h:selectOneMenu>
<br></br><br></br>
</label>
</div>
<div class="f2">
<label class="title"> NOME EMPRESA </label><br></br><br></br>
<label class="fname"> Nome: <p:inputText value="#{scriptControle.n_emp.empresa}" />
<br></br><br></br>
Empresas: <h:selectOneMenu id="empresa" value="#{scriptExec.selectedEmpresa}" valueChangeListener="#{scriptControle.selectedCaminhoDB_CB()}">
<f:selectItem itemLabel="Selecione" />
<f:selectItems value="#{scriptControle.selectedCaminhoEmpresa()}" />
<f:ajax event="change" render="database" />
</h:selectOneMenu>
<br></br><br></br>
</label>
</div>
meu problema é que quero, selecionar uma base no meu selectOneMenu e quando selecionar a base o outro selectedOneMenu seja populado com o resultado da consulta da minha TERCEIRA DAO LISTADA ACIMA que na consulta receba como parametro o nome da base selecionada no primeiro selectOneMenu se alguém puder ajudar fico grato