我们可以将JSF应用程序集成到jdbc。 JDBC可将数据存储到数据库表中。在本教程中,我们创建一个应用程序并创建jdbc连接来存储用户输入的数据。
打开 NetBeans IDE,创建一个名称为:JdbcConnectivity 的 Web 工程,其目录结构如下所示 -
提示: 需要加入
mysql-connector-java
Jar包。
此应用程序包含用户输入表单,委托bean和响应页面,如以下步骤。
我们使用mysql数据库创建数据库和表。
创建数据库
使用以下SQL命令,创建一个数据库:test
;
create database test;
在这个数据中,创建一个表: user
-
create table user( id int not null auto_increment primary key, name varchar(100) not null, email varchar(50) not null );
创建数据库和表后,现在创建一个用户表单来获取输入的用户信息。
创建一个名称为:index.xhtml
的文件,其代码如下所示 -
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head> <title>User Form</title> </h:head> <h:body> <h:form> <h:outputLabel for="username" value="User Name "/> <h:inputText id="username" value="#{user.userName}"> </h:inputText><br/> <h:outputLabel for="email" value="Email ID "/> <h:inputText id="email" value="#{user.email}"> </h:inputText><br/><br/> <h:commandButton action="#{user.submit()}" value="submit"/> </h:form> </h:body> </html>
此文件还包含属性,数据库连接和页面导航。创建一个名称为:User.java
的文件,其代码如下所示 -
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.zyiz; /** * * @author Maxsu */ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import javax.faces.bean.ManagedBean; import javax.faces.bean.ReferencedBean; @ManagedBean @ReferencedBean public class User { String userName; String email; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public boolean save() { int result = 0; try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456"); PreparedStatement stmt = con.prepareStatement("insert into user(name,email) values(?,?)"); stmt.setString(1, this.getUserName()); stmt.setString(2, this.getEmail()); result = stmt.executeUpdate(); } catch (Exception e) { System.out.println(e); } if (result == 1) { return true; } else { return false; } } public String submit() { if (this.save()) { return "result.xhtml"; } else { return "index.xhtml"; } } }
创建一个名称为:result.xhtml
的文件,其代码如下所示 -
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head> <title>Response Page</title> </h:head> <h:body> <h1><h:outputText value="Hello #{user.userName}"/></h1> <h:outputText value="Your Record has been Saved Successfully!"/> </h:body> </html>
运行上面项目,打开浏览器访问:http://localhost:8084/JdbcConnectivity/
,并提交表单,向数据库表中写入数据 -
向上面表单中,写入一个示例数据,提示得到以下结果 -
现在,您可以看到表:user
中的数据,应该会看到上面表单提交的数据了 -