JSF JDBC连接

我们可以将JSF应用程序集成到jdbc。 JDBC可将数据存储到数据库表中。在本教程中,我们创建一个应用程序并创建jdbc连接来存储用户输入的数据。

JSF + MySQL 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>

创建一个委托Bean

此文件还包含属性,数据库连接和页面导航。创建一个名称为: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 中的数据,应该会看到上面表单提交的数据了 -


上一篇:JSF HTML5友好标记

下一篇:JSF MySQL CURD实例

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程