我正在尝试学习如何将 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 设置是否可以,我已按照一些教程进行设置
所以主要问题是,我怎样才能将用户输入的值输入数据库?