表单提交到数据库实现增删查--Java实现

案例分析:
创建一个表单,暂时只实现注册功能,通过用户名即可注册,注册的信息发送给数据库,可以实现增加、删除、查询所有信息等功能。

实现:
1.将MySQL驱动包拷贝到WebRoot–>Web-INF–>lib文件夹下;

2.在数据库中建一个user表,只有id和name两个字段;

3.创建一个表单,点击确定按钮以后提交,连接到doadd.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<form action="doadd.jsp">
    姓名:<input type="text" name="name"/><br/>
    <button type="submit">确定</button>
</form>

4.实现doadd.jsp,需要注意的是,doadd.jsp并不会展示给用户,它的作用就是把新注册的用户名添加到数据库:

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    //获取上一个页面传递过来的数据
    String name = request.getParameter("name");

    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/test";
    Connection conn = DriverManager.getConnection(url,"root","123456");
    String sql = "insert into user values(null,?);";
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setString(1,name);
    ps.executeUpdate();
    conn.close();

%>

<script>
    window.location = "show.jsp";
</script>

5.点击确定按钮之后,用户信息通过doadd.jsp被添加到数据库,然后通过show.jsp将用户信息展示给用户:

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<h1>用户列表</h1>

<table border="1" width="400">
<%
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/test";
    Connection conn = DriverManager.getConnection(url,"root","123456");
    String sql = "select * from user;";
    PreparedStatement ps = conn.prepareStatement(sql);
    ResultSet rs = ps.executeQuery();
    while(rs.next()){
%>
    <tr>
        <td><%=rs.getInt("id") %></td>
        <td><%=rs.getString("name") %></td>
        <td>
            <a href="dodel.jsp?id=<%=rs.getInt("id") %>">删除</a>     
        </td>
    </tr>
<%      
    }
    conn.close();
%>

</table>
<a href="index.jsp">继续注册</a>

6.如果点击删除,就会删除对应的用户,这个通过dodel.jsp实现,同样这个页面不会展示给用户:

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String id = request.getParameter("id");
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/test";
    Connection conn = DriverManager.getConnection(url,"root","123456");
    String sql = "delete from user where id="+id;
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.executeUpdate();
    conn.close(); 

%>

<script>
    window.location = "show.jsp";
</script>

7.如果选择继续注册,则会通过show.jsp最后的超链接回到最初的注册页面。


实现这些功能遇到的问题
1.在实现添加功能时,不知道如何获取上一个页面传递过来的数据,即注册的用户名。
解决:通过request.getParameter()这个API可以获取到上一个页面传递过来的数据。

2.点击注册的确定按钮后,出现空白页。
解决:因为doadd.jsp不会展示给用户,所以这个页面加载完毕后应该连接到show.jsp,将用户信息展示给用户。


实现过程中用到的一些比较重要的知识点
1.通过request.getParameter()这个API可以获取到上一个页面传递过来的数据。

2.浏览器地址栏后加?id=…可以传递参数。

<a href="dodel.jsp?id=<%=rs.getInt("id") %>">删除</a> 

所以点击这个超链接就可以将id传递给dodel.jsp,从而删除对应id的用户。

猜你喜欢

转载自blog.csdn.net/yangruxi/article/details/80341604
今日推荐