201819102006郭展昊实验报告

实验报告

1、编写一个学生信息注册页面,并把学生信息写入数据库名称为stuinfo的数据库中
2、编写一个学生登录页面(从stuinfo数据库中读取学生信息)
3、编写学生管理页面,实现学生信息的增删改查等操作
首先创建一个表单来限制登陆页面,限制表单的样式以及行类的变化:

    <link rel="stylesheet" href="css/bootstrap.css">

    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap.js"></script>
    <script src="js/bootstrap.bundle.js"></script>

    <style>
        .container{
            width: 20%;
            height: 20%;
            margin-top:10% ;
        }
    </style>
</head>
<body>
<div class="container">
    <div class="row clearfix">
        <div class="col-md-12 column">
            <form role="form" action="index.jsp">
                <h3 style="text-align:center">登录 </h3>
                <div class="form-group">
                    <label for="exampleInputEmail1">用户名:</label><input type="text" class="form-control" name = "username" id="exampleInputEmail1" />
                </div>
                <div class="form-group">
                    <label for="exampleInputPassword1">密码:</label><input type="password" class="form-control" name="password" id="exampleInputPassword1" />
                </div>
                <div class="form-group"></div>
                    <button type="submit" class="btn btn-default">提交</button>
            </form>
        </div>
    </div>
</div>

实现以下的面板构造
在这里插入图片描述登录
在这里插入图片描述
实现增删改查
增加

<%
   String sql = "insert into user (username,password,gender,age) values (?,?,?,?)"; //在PreparedStatement 中使用问好代替实际参数
    PreparedStatement ps = connection.prepareStatement(sql);

    ps.setString(1,user.getUsername());
    ps.setString(2,user.getPassword());
    ps.setInt(3,user.getGender());
    ps.setInt(4,user.getAge());
    ps.setInt(5,0);
    ps.addBatch();

    ps.setString(1,user.getUsername()+"123");
    ps.setString(2,user.getPassword()+"123");
    ps.setInt(3,user.getGender());
    ps.setInt(4,user.getAge());
    ps.setInt(5,0);
    ps.addBatch();

    int[] count={0};
    try {//事务
        count = ps.executeBatch();
        connection.commit();
    }
    catch(SQLException e){
        connection.rollback();
        e.printStackTrace();
    }

    if(count[0] > 0){
        out.print("添加成功");
    }else{
        out.print("添加失败");
    }
%>

添加的代码应该与之前的主页相连,所以在跳转的时候需要:

response.setHeader("refresh","3;url=home.jsp");

在这里插入图片描述
删除

 

<%
    Class.forName("com.mysql.jdbc.Driver");

    String url = "jdbc:mysql://localhost:3306/book";
    Connection connection = DriverManager.getConnection(url, "root", "root");

    String sql = "select * from user where username = ? and password = ?";
    PreparedStatement ps = connection.prepareStatement(sql);

    int id=Integer.parseInt(request.getParameter("id"));

    ps.setInt(1,id);

    int count = ps.executeUpdate();

    if(count > 0){
        out.print("删除成功");
    }
    else{
        out.print("删除失败");
    }
%>

在这里插入图片描述
在这里插入图片描述
修改:

<%
    //加载数据库驱动
    Class.forName("com.mysql.jdbc.Driver");

    //建立数据库连接
    String url = "jdbc:mysql://localhost:3306/book"; //数据库连接地址
    Connection connection = DriverManager.getConnection(url,"root","root"); //第一个root为数据库的用户名  第二个root为数据库的密码

    String sql = "update user set username = ? ,password = ? , gender = ?, age = ? where id = ?"; //在PreparedStatement 中使用问好代替实际参数
    PreparedStatement ps = connection.prepareStatement(sql);

    ps.setString(1,user.getUsername());
    ps.setString(2,user.getPassword());
    ps.setInt(3,user.getGender());
    ps.setInt(4,user.getAge());
    ps.setInt(5,user.getId());

    int count = ps.executeUpdate();

    if(count > 0){
        out.print("修改成功");
    }else{
        out.print("修改失败");
    }

    response.setHeader("refresh","3;url=home.jsp");
%>

在这里插入图片描述
在这里插入图片描述其他代码有:
跳转

  <%
         if (session.getAttribute("username") == null){
             out.print("你尚未登录,3秒之后跳转登陆页面");
             response.setHeader("refresh","3;url=login.jsp");
         }else {
             out.print("<h3 style='text-align 欢迎来到个人主页!<br>");

             Class.forName("com.mysql.jdbc.Driver");

             String url = "jdbc:mysql://localhost:3306/book";
             Connection connection = DriverManager.getConnection(url, "root", "root");

             String sql = "select * from user where username = ? and password = ?";
             PreparedStatement ps = connection.prepareStatement(sql);

             ps.setString(1, request.getParameter("username"));
             ps.setString(2, request.getParameter("password"));
             ResultSet rs = ps.executeQuery();
             while (rs.next()) {
                 out.print(rs.getString("username") + "-" + rs.getString(3) + "<br>");
             }

%>

其中对于显示的个人主页也进行表单限制:

<div class ="container">
      <div class="row clearfix">
          <div class="col-md-12 column">
              <table class="table table-striped">
                  <thead>
                      <th>ID</th>
                      <th>用户名</th>
                      <th>性别</th>
                      <th>年龄</th>
                      <th>操作</th>
                  </thead>
                  <tbody>
                  <%
                      while (rs.next()){
                          out.print("<tr>");
                          out.print(
                                          "<td>"+rs.getString("id")
                                          +"<td><td>"+rs.getString("username")
                                          +"<td><td>"+rs.getString("gender")
                                          +"<td><td>"+rs.getString("age")
                                  +"<td>"
                                  +"<td> a href='delete.jsp?id="+rs.getString("id")+"'>删除</a>"+ "</td>"
                                                  +"<&nbsp> a href='delete.jsp?id="+rs.getString("id")+"'>修改</a>"+ "</td>"
                          );
                          out.print("</tr>");
                      }
                      }
                  %>
                  </tbody>
              </table>
          </div>
      </div>
  </div>

查找用户的代码显示:

    UserBean user = new UserBean;
    while(rs.next()){
        out.print("<input type=\"hidden\" name='id' value="+id+">");
        out.print("用户名:<input type='next' name='username' class=\"from-control\" values="+rs.getString("username")+"/><br>");
        out.print("密码:<input type='next' name='password' class=\"from-control\" values="+rs.getString("username")+"/><br>");
        out.print("性别:<input type='next' name='gender' class=\"from-control\" values="+rs.getString("username")+"/><br>");
        out.print("年龄:<input type='next' name='age' class=\"from-control\" values="+rs.getString("username")+"/><br>");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值