使用受管bean对数据库中数据进行增删改查操作

Student.java

package chen;

public class Student {
    private String xm;
    private String xb;
    private String ad;
public Student(String xm, String xb, String ad)
{this.xm=xm;
this.xb=xb;
this.ad=ad;
    }
    public String getXm() {
        return xm;
    }
    public void setXm(String xm) {
        this.xm = xm;
    }
    public String getXb() {
        return xb;
    }
    public void setXb(String xb) {
        this.xb = xb;
    }
    public String getAd() {
        return ad;
    }
    public void setAd(String ad) {
        this.ad = ad;
    }
}

编写受管bean Bean.java

package chen;

import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.jsp.jstl.sql.Result;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped; 

@ManagedBean(name = "bean")
@SessionScoped
public class Bean implements Serializable {
    private String xm;
    private String xb;
    private String ad;
    private ArrayList<Student> df;


    public ArrayList<Student> getDf() {
        return df;
    }

    public void setDf(ArrayList<Student> df) {
        this.df = df;
    }

    public String getXm() {
        return xm;
    }

    public void setXm(String xm) {
        this.xm = xm;
    }

    public String getXb() {
        return xb;
    }

    public void setXb(String xb) {
        this.xb = xb;
    }

    public String getAd() {
        return ad;
    }

    public void setAd(String ad) {
        this.ad = ad;
    }


    public Bean()
    {
        select();
    }

    private Connection getConnection() {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            Connection con = DriverManager.getConnection(
                    "jdbc:sqlserver://C215001:1433; databaseName=dskgo", "sa",
                    "123456");
            return con;
        } catch (Exception e) {
            return null;
        }
    }
        //通过select()方法得到对象的参数值添加学生到数据库中
    public String insert() {
            try {
                Connection con = getConnection();
                Statement statement = con.createStatement();
                statement.execute("insert into student values('" + xm + "','" + xb
                        + "','" + ad + "')");
                select();
                return "index";
                //得到学生的参数值返回到主页index.xhtml
            } catch (Exception e) {
                System.out.println(e.getMessage());
                return "error";
            }
    }
        //得到学生的参数值
    public void select() {
        try {
            Connection con = getConnection();
            PreparedStatement statement = con
                    .prepareStatement("select * from student");
            ResultSet sdf = statement.executeQuery();
            df = new ArrayList<Student>();
            while (sdf.next()) {
                df.add(new Student(sdf.getString("xm"), sdf.getString("xb"),
                        sdf.getString("ad")));

            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    public static String getFacesParamValue(String name) 
    {   
        return (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(name);
    }
        //通过学生姓名删除学生
    public String delete()
    {
        String strXm = getFacesParamValue("xm");

        try {
            Connection con = getConnection();
            Statement statement = con.createStatement();
            statement.execute("delete from student where xm='" + strXm + "'");
            select();
            return "index";
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return "error";
        }
    }
        //通过学生姓名操作学生信息
    public String edit()
    {
        String strXm = getFacesParamValue("xm");

        try {
            Connection con = getConnection();
            PreparedStatement statement = con
                    .prepareStatement("select * from student where xm='" + strXm + "'");
            ResultSet sdf = statement.executeQuery();
            if (sdf.next()) {
                xm = sdf.getString("xm");
                xb = sdf.getString("xb");
                ad = sdf.getString("ad");
                return "edit";
            }
            else
                return "error";

        } catch (Exception e) {
            System.out.println(e.getMessage());
            return "error";
        }
    }

        //修改学生信息
    public String update()
    {

        try {
            Connection con = getConnection();
            Statement statement = con.createStatement();
            statement.execute("update student set xb='" + xb
                    + "',ad='" + ad + "' where xm='" + xm + "'");
            select();
            return "index";
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return "error";
        }
    }


}

index.jsp 创建一个提供显示学生信息和注册学生的页面链接的主页

</head>
  <body>
       <a href="index.xhtml">显示所有用户信息</a>
       &nbsp;&nbsp;
       <a href="reg.xhtml">注册</a>
  </body>
</html>

这里写图片描述


index.xhtml(显示所有学生信息,提供编辑和删除操作选项)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
    xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions" lang="en">
<h:head>
    <title>JSF 2.2 Page</title>
    <meta name="keywords" content="enter,your,keywords,here" />
    <meta name="description" content="A short description of this page." />
    <meta name="content-type" content="text/html; charset=UTF-8" />

    <!--<link rel="stylesheet" type="text/css" href="styles.css">-->
</h:head>
<h:body>
    <h:form>
    <h:dataTable value="#{bean.df}" var="student">
        <h:column>
            <f:facet name="header">name</f:facet>
        #{student.xm}</h:column>
        <h:column>
            <f:facet name="header">xy</f:facet>#{student.xb}</h:column>
        <h:column>
            <f:facet name="header">address</f:facet>#{student.ad}</h:column>
        <h:column>
            <f:facet name="header">操作</f:facet>
            <h:commandLink action="#{bean.edit}" value="编辑" style="margin-right:10px;" >
                <f:param name="xm" value="#{student.xm}" />
            </h:commandLink>
            <h:commandLink action="#{bean.delete}" value="删除" >
                <f:param name="xm" value="#{student.xm}" />
            </h:commandLink>
        </h:column>

    </h:dataTable>
    </h:form>
</h:body>
</html>

这里写图片描述


注册页面 reg.xhtml

    ........
    </h:head>
    <h:body>
        <h:form>
        姓名:<h:inputText required="true" name="xm" value="#{bean.xm}" ></h:inputText><br></br>
        性别:<h:inputText required="true" name="xb" value="#{bean.xb}"></h:inputText><br></br>
        地址:<h:inputText required="true" name="ad" value="#{bean.ad}"></h:inputText><br></br>
        <h:commandButton type="submit" value="提交" action="#{bean.insert}" ></h:commandButton>

        </h:form>
    </h:body>
</html>

这里写图片描述


修改学生信息页面 update.xhtml

    ......
 </h:head>
    <h:body>
        <h:form>
        姓名:<h:inputText required="true" name="xm" value="#{bean.xm}" readonly="true"></h:inputText><br></br>
        性别:<h:inputText required="true" name="xb" value="#{bean.xb}"></h:inputText><br></br>
        地址:<h:inputText required="true" name="ad" value="#{bean.ad}"></h:inputText><br></br>
        <h:commandButton type="submit" value="提交" action="#{bean.update}" ></h:commandButton>

        </h:form>
    </h:body>
</html>

这里写图片描述


错误页面 error.xhtml

    ......
 </h:head>
    <h:body>
        <p>
            <h1>error</h1>
        </p>
    </h:body>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值