0

我正在尝试学习如何将 jsf 与数据库一起使用,我对 JSF 有一些经验,但与数据库无关,

我想做的是制作一个简单的页面,用户在其中输入一些详细信息,然后将其存储到数据库中,如果您愿意,可能在后期可以编辑和删除这些简单的 CRUD 程序

目前我有这个 xhtml 页面




                         <h:outputText value="Enter your username : " />
                        <h:inputText value="#{getDetails.username}" required="true" 
                                     requiredMessage="Username is required" />

                        <h:outputText value="Enter your first name : " />
                        <h:inputText value="#{getDetails.name}" required="true" 
                                     requiredMessage="First name is required" />

                        <h:outputText value="Enter your surname : " />
                        <h:inputText value="#{getDetails.surname}" required="true" 
                                     requiredMessage="Surname is required" />

                        <h:outputText value="Enter email address : "/>
                        <h:inputText id="email" value="#{getDetails.email}" 
                                     size="20" required="true" label="Email Address">
                            <f:validator validatorId="richard.validator.EmailValidator" />
                        </h:inputText>
                        <h:outputText value="Enter your address : "/>
                        <h:inputText value="#{getDetails.address}" required="true" 
                                     requiredMessage="Address is required" /> 

                        <h:outputText value="Enter a valid U.K. postcode : "/>
                        <h:inputText value="#{getDetails.postcode}" required="true" 
                                     requiredMessage="A valid U.K. post code is required" /> 

                        <h:outputText value="Enter a contact number : "/>
                        <h:inputText value="#{getDetails.phonenumber}" required="true" 
                                     requiredMessage="A valid phonenumber is required" />   


                    </h:panelGrid>  

                    <p:commandButton value="Save" action="#{getDetails.add}" update="growl"  />  
                </p:panel>  

            </h:form>  

上面的页面只是一些输入框供用户输入他们的详细信息,我有一些验证,虽然我想稍后添加更多,并且发送它的 bean 有所有的 getter 和 setter,并打印出控制台中的值,所以我知道它已传递给 bean ok

我想做的是将这些添加到数据库中,我必须使用 netbeans 和 JSF 附带的一个(Java db,derby)

我创建了一个数据库和一个表来将这些值插入到,

CREATE TABLE userdetails (
  id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  "username" VARCHAR(15) NOT NULL,
  "firstname" VARCHAR(15) NOT NULL,
  "surname" VARCHAR(15) NOT NULL,
  "emailaddress" VARCHAR(25) NOT NULL,
  "address" VARCHAR(50) NOT NULL,
"postcode" VARCHAR(8) NOT NULL,
"phonenumber" VARCHAR(15) NOT NULL
);

所有用户都必须有一个唯一的 id 但他们不知道这一点

我在 glassfish 中设置了一个新的 jdbc 连接池

pool name : airlinebooking
resource type : javax.sql.DataSource
database driver vendor : derby

在我拥有的属性中

portnumber
servername
databasename
password
user

我可以 ping 到数据库就好了

我还创建了 jdbc 资源

JNDI name jdbc/AirlineBooking
Pool name DerbyPool

使用 glassfish 设置是否可以,我已按照一些教程进行设置

所以主要问题是,我怎样才能将用户输入的值输入数据库?

4

1 回答 1

0

Facelets 和所有 JSF 都专注于用户界面,这主要是与视图相关的问题。数据库是应用程序的另一端,JSF 和 PrimeFaces 都与数据库通信无关……但是,如果您在PrimeFaces 展示网站上浏览一下,您会发现如何向用户提供一些自定义数据或从用户那里获得一些自定义数据。这还不是与数据库的连接,但如果你足够聪明,你应该很快了解如何使用 JDBC 连接(这里是简要教程),甚至是 JPA/Hibernate 持久性(这里)。

于 2013-11-05T23:18:26.650 回答