用户管理系统——(三)添加用户


前言

添加联系人就将前端传送过来的数据添加保存到数据库


一、效果展示

1.添加页面
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
2.输入数据
在这里插入图片描述

3.效果展示
在这里插入图片描述

二、前端

<form action="${pageContext.request.contextPath}/addUserServlet1" method="post" enctype="multipart/form-data">
        <div class="form-group">
            <label for="name">姓名:</label>
            <input type="text" class="form-control" id="name" name="name" placeholder="请输入姓名">
        </div>

        <div class="form-group">
            <label>性别:</label>
            <input type="radio" name="gender" value="男" checked="checked"/>男
            <input type="radio" name="gender" value="女"/>女
        </div>

        <div class="form-group">
            <label for="age">年龄:</label>
            <input type="text" class="form-control" id="age" name="age" placeholder="请输入年龄">
        </div>

        <div class="form-group">
            <label for="address">籍贯:</label>
            <select name="address" class="form-control" id="address">
                <option value="陕西">陕西</option>
                <option value="北京">北京</option>
                <option value="上海">上海</option>
            </select>
        </div>

        <div class="form-group">
            <label for="qq">QQ:</label>
            <input type="text" class="form-control" id="qq" name="qq" placeholder="请输入QQ号码"/>
        </div>

        <div class="form-group">
            <label for="email">Email:</label>
            <input type="text" class="form-control" id="email" name="email" placeholder="请输入邮箱地址"/>
        </div>
        <div class="form-group" style="height: 40px;">
            <label for="photo" class="col-sm-1 control-label">头像</label>
            <div class="col-sm-11">
                <img  id="preview" height="100" width="100"
                      src="${pageContext.request.contextPath}/images/noneface.png" style="padding: 2px;border: 1px #e6e6e6 solid" />
                <input class="col-sm-10 col-sm-offset-2" type="file" name="photo" οnchange="javascript:setImgView('photo','preview');"
                       id="photo" />
            </div>
        </div>
        <div class="form-group" style="text-align: center">
            <input class="btn btn-primary" type="submit" value="提交" />
            <input class="btn btn-default" type="reset" value="重置" />
            <input class="btn btn-default" type="button" value="返回" />
        </div>
    </form>

1.这里采用form表单以post请求给后台传送数据
2.action=${pageContext.request.contextPath}/addUserServlet1"是传给哪个servlet来执行请求
3.这里前端是采用bootstrap

三、后端

@WebServlet("/AddUserServlet")
public class AddUserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置post编码
        req.setCharacterEncoding("utf-8");
        //设置响应编码
        resp.setContentType("text/html;charset=utf-8");
        //请求参数
        String name = req.getParameter("name");
        String gender = req.getParameter("gender");
        int age = Integer.parseInt(req.getParameter("age"));
        String address = req.getParameter("address");
        String qq = req.getParameter("qq");
        String email = req.getParameter("email");
        //封装
        User user=new User(name,gender,age,address,qq,email);
        //业务层
        UserService userService=new UserServiceImpl();
        userService.saveUser(user);
        //5.跳转到其他资源   如果数据存在request, 一定使用转发
        //如果没有, 推荐使用重定向, 可以转发
        resp.sendRedirect(req.getContextPath()+"/index.jsp");
    }
}

1.这里继承Httpservlet重写它的get与post方法
由于前端是post请求我们就在post方法中书写代码,当然也可以在get中书写,只不过要在post方法中去调用get方法
2.将前端的数据保存到pojo包下的实体类进行封装
3.调用业务逻辑层书写逻辑代码

 UserDao userDao = new UserDaoImpl();
    @Override
    public boolean saveUser(User user) {
        //调用UserDao

        int row = userDao.insert(user);
        return row>0;
    }

本项目是弱业务层,所有逻辑代码就是去调用dao层,将数据保存到数据库
同时返回数据库受影响行数;
4dao层,将数据保存到数据库

 public int insert(User user) {
        Connection conn = null;
        PreparedStatement pstm = null;
        try {
            //1.获取连接
            conn = JdbcUtil.getConnection();
            //2.编写sql语句
            String sql = "INSERT INTO `tb_emp` (" +
                    "  `name`," +
                    "  `gender`," +
                    "  `age`," +
                    "  `address`," +
                    "  `qq`," +
                    "  `Email`," +
                    "`photo`) " +
                    "VALUES(?,?,?,?,?,?,?)";
            //3.创建PreparedStatement
            pstm = conn.prepareStatement(sql);
            //4.给?赋值
            pstm.setString(1, user.getName());
            pstm.setString(2, user.getGender());
            pstm.setInt(3, user.getAge());
            pstm.setString(4, user.getAddress());
            pstm.setString(6, user.getEmail());
            pstm.setString(5, user.getQQ());
            pstm.setString(7,user.getPhoto());
            //5.执行之
            return pstm.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JdbcUtil.close(null, pstm, conn);
        }
        return 0;
    }

添加用户的基本操作就是这样了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值