添加功能和删除功能

添加功能

分析:

  1. 设置编码
  2. 获取所有数据
  3. 封装对象
  4. 调用Service完成保存
  5. 跳转道UserListServlet再次查询

代码

add.jsp代码

复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta charset="utf-8">
    <title>增加用户</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面 任何其他内容都*必须*跟随其后-->
    <title>首页</title>

    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <!-- jQuery(Bootstrap的所有javaScrpt插件都依赖) -->
    <script src="js/bootstrap.min.js"></script>
    <!-- 加载Bootstrap 的所有 javaScript插件 你也可以根据需要只加载单个插件 -->
    <script src="./js/bootstrap.js"></script>
    <script src="text/javascript"></script>
</head>
<body>
<div class="container">
    <center><h3>添加联系人页面</h3></center>
    <form action="${pageContext.request.contextPath}/AddUserServlet" method="post">
        <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="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>
</div>
</body>
</html>
复制代码

AddUserServlet类

复制代码
package com.bai.web.servlet;

import com.bai.domain.User;
import com.bai.service.UserService;
import com.bai.service.img.UserServiceImpl;
import org.apache.commons.beanutils.BeanUtils;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;

public class AddUserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置编码
        req.setCharacterEncoding("utf-8");
        //获取参数
        Map<String,String[]> map=req.getParameterMap();
        //封装对象
        User user = new User();
        try {
            BeanUtils.populate(user,map);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
        //调用Service保存
        UserService service = new UserServiceImpl();
        service.addUser(user);

        //跳转道userListServlet
        resp.sendRedirect(req.getContextPath()+"/UserListServlet");

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}
复制代码

UserService接口

复制代码
package com.bai.service;

import com.bai.domain.User;

import java.util.List;

/**
 * 用户管理的业务接口
 */
public interface UserService {
    /**
     * 查询所有用户信息
     */
    public List<User> findAll();

    public User login(User user);

    /**
     * 保存user
     * @param user
     */
    void addUser(User user);
}
复制代码

UserServiceImpl类

复制代码
package com.bai.service.img;

import com.bai.dao.Impl.UserDaoImpl;
import com.bai.dao.UserDao;
import com.bai.domain.User;
import com.bai.service.UserService;

import java.util.List;

public class UserServiceImpl implements UserService {

    private UserDao dao=new UserDaoImpl();
    //调用Dao完成查询
    public List<User> findAll() {
        //调用Dao完成查询
        return dao.findAll();
    }

    public User login(User user) {
        return dao.findUserByUsernameAndPassword(user.getUsername(),user.getPassword());
    }

    public void addUser(User user) {
        dao.add(user);
    }


}
复制代码

UserDao接口

复制代码
package com.bai.dao;

import com.bai.domain.User;

import java.util.List;

/**
 * 用户操作的Dao
 */
public interface UserDao {
    public List<User> findAll();

    public User findUserByUsernameAndPassword(String username,String password);

    void add(User user);
}
复制代码

UserDaoImpl类

复制代码
package com.bai.dao.Impl;

import com.bai.dao.UserDao;
import com.bai.domain.User;
import com.bai.util.JDBCUtils;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;

public class UserDaoImpl implements UserDao {

    private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    public List<User> findAll() {
        //使用JDBC操作数据库
        //1.定义sql
        String sql="select * from user";
        List<User> query = template.query(sql, new BeanPropertyRowMapper<User>(User.class));
        return query;
    }

    public User findUserByUsernameAndPassword(String username, String password) {
        try {
            String sql = "select * from user1 where username = ? and password = ?";
            User user = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), username,password);
            return user;
        } catch (DataAccessException e) {
            e.printStackTrace();
            return null;
        }
    }

    public void add(User user) {
        //定义sql
        String sql="insert into user values(null,?,?,?,?,?,?)";
        //执行sql
        template.update(sql,user.getName(),user.getGender(),user.getAge(),user.getAddress(),user.getQq(),user.getEmail());
    }
}
复制代码

运行结果

 

 

 

 删除功能

分析

  1. 获取参数 id
  2. 调用Service删除
  3. 跳转查询所有Servlet

 DelUserServlet类

复制代码
package com.bai.web.servlet;

import com.bai.domain.User;
import com.bai.service.UserService;
import com.bai.service.img.UserServiceImpl;
import org.apache.commons.beanutils.BeanUtils;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;

public class AddUserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置编码
        req.setCharacterEncoding("utf-8");
        //获取参数
        Map<String, String[]> map = req.getParameterMap();
        //封装对象
        User user = new User();
        try {
            BeanUtils.populate(user, map);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
        //调用Service保存
        UserService service = new UserServiceImpl();
        service.addUser(user);

        //跳转道userListServlet
        resp.sendRedirect(req.getContextPath() + "/UserListServlet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}
复制代码
posted @   baimingze  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示