宁波中软实习day4

SSM项目添加增删改功能

在昨天的SSM项目基础上添加增删改功能,实现SSM项目的基本功能。
首先看一下昨天实现的查询功能:

进行功能的添加有两个方向,从用户调用角度进行功能的实现,即从调用者到被调用者;第二种,从基础实现角度到具体功能,即从被调用者到调用者。我采用的是第一种方法。

1.添加功能

添加功能的实现过程是,用户录入新增的用户信息,addUser页面将表单数据提交给controller实现新增功能,并且重定向到allUser页面。
1.jsp页面跳转到新增用户界面;
直接在用户信息显示界面jsp中为“新增”功能添加一个界面跳转功能,用户点击“新增”就跳转到新增用户界面;

跳转实现
2.新增用户界面的编写;
本界面主要包含用户信息的输入框,以及确认按钮,以提供用户录入新增用户的信息;
信息提交给controller中的insertUser来处理;

3.完善controller类中insertUser方法;

<@RequestMapping("/insertUser.do")
public String insertUser(UserInfo user){
    userService.insertUser(user);
    return "redirect:findAll.do";
}>

本方法调用service包中的insertUser方法实现用户信息的插入;

4.在service包下的接口中添加insertUser方法;

public void insertUser(UserInfo userInfo);

5.在service包下的impl包中添加上面接口的实现类;

调用的是dao包中的接口;

@Override
public void insertUser(UserInfo user){ userInfo.insertUser(user);}

6.完善dao包中的接口

public void insertUser(UserInfo userInfo);

7.完善UserMapper中实现插入的功能;

<insert id="insertUser" parameterType="com.zhongruan.bean.UserInfo">
    insert into userinfo(username,password) values (#{username},#{password})
</insert>

2.删除功能

删除功能的实现过程是,用户在allUser页面点击“删除”,该页面将要删除的用户id提交给controller实现删除功能,并重定向到allUser页面。

1.实现allUser页面提交要删除的用户id到controller层;

<a href="${pageContext.request.contextPath}/user/delUser.do?id=${userInfo.id}">删除</a>

2.实现controller删除用户的功能;

@RequestMapping("/delUser.do")
public String delUser(int id){
    userService.delUser(id);
    return "redirect:findAll.do";
}

3.实现service层中接口,实现类,dao层中接口,UserMapper中删除功能;

具体实现原理与过程与添加功能相似;

service接口中的方法:

public void delUser(int id);

service中实现接口的方法:

@Override
public void delUser(int id){ userInfo.delUser(id);}

dao层的接口:

public void delUser(int id);

UserMapper实现删除的方法:

<delete id="delUser" parameterType="int">
    delete from userinfo where id = #{id}
</delete>

3.修改功能

修改功能实现过程是,用户点击“更新”,向controlller提交选择用户的id,controller查找对应的用户信息,并返回给更新页面,该页面展示用户原本的信息,用户在更新页面做相应的修改,点击确定,将表单提交给controller,controller根据提交的用户信息进行对应的修改。
1.jsp页面实现跳转功能即更新页面;

allUser.jsp:

<a href="${pageContext.request.contextPath}/user/findOne.do?id=${userInfo.id}">更改</a>

updateUser.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>修改论文</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 引入 Bootstrap -->
    <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
                <h1>
                    基于SSM框架的管理系统:简单实现增、删、改、查。
                </h1>
            </div>
        </div>
    </div>

    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
                <h1>
                    <small>修改用户</small>
                </h1>
            </div>
        </div>
    </div>

    <form action="${pageContext.request.contextPath}/user/updateUser.do"
          method="post">
        <input type="hidden" name="id" value="${userInfo.id}"/>
        用户姓名:<input type="text" name="username" value="${userInfo.username}"/>
        用户密码:<input type="text" name="password" value="${userInfo.password}"/>
        <input type="submit" value="提交" />
    </form>
</div>

2.service层接口及实现类的编写,dao层的接口,UserMapper文件实现;
service接口:

public void updateUser(UserInfo userInfo);
public UserInfo findOne(int id);

service实现类:

@Override
public void updateUser(UserInfo user) {
    userInfo.updateUser(user);
}

@Override
public UserInfo findOne(int id) {
    return userInfo.findOne(id);
}

dao接口:

public void updateUser(UserInfo user);
public UserInfo findOne(int id);

UserMapper实现:

<update id="updateUser" parameterType="com.zhongruan.bean.UserInfo">
    update userinfo set username = #{username},password = #{password}
    where id = #{id}
</update>

<select id="findOne" parameterType="int" resultType="com.zhongruan.bean.UserInfo">
    select * from userinfo where id = #{id}
</select>

controller实现:

@RequestMapping("/findOne.do")
public ModelAndView findOne(int id){
    UserInfo userInfo = userService.findOne(id);
    ModelAndView mv = new ModelAndView();
    mv.addObject("userInfo",userInfo);
    mv.setViewName("updateUser");
    return mv;
}

@RequestMapping("/updateUser.do")
public String updateUser(UserInfo userInfo){
    userService.updateUser(userInfo);
    return "redirect:findAll.do";
}

4.易错点

1.要注意页面与controller间参数的传递,我在写这几个功能的时候因为这个问题一直出错;
2.注意统一命名,如果命名出现错误会很难找到出错的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值