无法使用ManagedBean中的jdbc驱动程序连接到postgres

时间:2016-04-22 15:24:33

标签: java postgresql jsf jdbc primefaces

我使用jsf和Primefaces处理java Web应用程序,Glassfish 4.1.1作为我的应用程序服务器,PostgreSQL作为我的数据库。 我有一个包含selectOneMenu的表单,该值使用commandButton发送到ManagedBean。 然后,ManagedBean尝试使用DriverManager连接到数据库并执行查询,结果显示在panelGrid中。

这是ManagedBean Pays.java中的java代码:

public void save() throws NamingException, SQLException{ 

        String url = "jdbc:postgresql://localhost:5432/zones_franches?user=postgres&password=jihane";
        Connection conn = DriverManager.getConnection(url);

        Statement st = conn.createStatement();

        ResultSet rs = st.executeQuery ("SELECT * FROM pays WHERE id_geom = "+ idGeom +";");
        System.out.println("Query executed....");

        if(rs.next()) {
            idPays = rs.getString("id_pays");
            nom = rs.getString("nom");
            superficie = rs.getString("superficie");
            pib2014 = rs.getString("pib_2014");
            population2014 = rs.getString("population_2014");
            inflation = rs.getString("inflation");
            investissements = rs.getString("investissements");
            indDoingBus = rs.getInt("ind_doing_business");

            rs.close();
            st.close();
            conn.close();
        }else{
            System.out.print("try again !");
            rs.close();
            st.close();
            conn.close();
        }
}

这是xhtml页面代码:

<h:form>
                <h:panelGrid columns="2" cellpadding="5">
                    <h:outputLabel for="pays" value="Pays sélectionné : " />
                    <h:selectOneMenu id="pays" value="#{pays.idGeom}" required="true" label="ID Pays">
                        <f:selectItem itemLabel="Egypte" itemValue="1" />
                    </h:selectOneMenu>
                </h:panelGrid>
                <h:panelGrid>
                    <p:commandButton process="@parent:@parent" update="@form" value="Détails" action="#{pays.save()}"/>
                    <br/>
                        <p:panelGrid columns="2">
                            <f:facet name="header">
                                <p:graphicImage name="demo/images/misc/kobe.png" />
                            </f:facet>

                            <h:outputText value="Code Pays :" />
                            <h:outputText value="#{pays.idGeom}" />

                            <h:outputText value="Id Pays :" />
                            <h:outputText value="#{pays.idPays}" />

                            <h:outputText value="Nom Pays :" />
                            <h:outputText value="#{pays.nom}" />
                        </p:panelGrid>

                </h:panelGrid>
            </h:form>

问题是,即使我单击commandButton时执行了save()方法,结果也不会显示在panelGrid中。

0 个答案:

没有答案