实习日志7.22

理论简述

  • ssm
    • 【spring】 实现控制反转,即控制权的转移,创建对象的任务交给spring容器
    • 【springmvc】 类似于servlet,实现跳转
    • 【mybatic】持久层框架,本质就是jdbc

实验过程记录

导入界面

将事先准备好的界面导入ssm项目中,放入包webapp之中。
项目目录截图:
项目目录
界面截图:
在这里插入图片描述
界面按区域分有:aside.jsp、header.jsp、main.jsp

具体功能实现

  1. 在control层添加findAll()的方法,使aside.jsp界面能够响应跳转到control层。
package com.zr.controller;

import com.zr.bean.User;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

@Controller
@RequestMapping("user")
public class UserController {

    @Autowired
    private IUserService userService;

    @RequestMapping("login.do")
    public ModelAndView login(User user){

        boolean flag=userService.login(user.getUsername(),user.getPassword());
        ModelAndView modelAndView=new ModelAndView();
        if(flag){
            modelAndView.setViewName("main");
        }
        else{
            modelAndView.setViewName("../failer");
        }

        return modelAndView;
    }

    @RequestMapping("findAll.do")
    public  ModelAndView findAll(){
        List<User> users=userService.findAll();
        ModelAndView mv=new ModelAndView();
        mv.setViewName("user-list");           //成功后跳转到user-list展现页面
        mv.addObject("users",users);//把查到的所有对象放入视图解析器
        return mv;
    }
}
  1. 此时会显示service层并没有findAll()方法,在service层的接口和具体实现中添加这个方法。
package com.zr.service;

import com.zr.bean.User;

import java.util.List;

public interface IUserService {

    boolean login(String username,String password);

    List<User> findAll()}
package com.zr.service.impl;

import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements IUserService {
    //容器创建new
    @Autowired
    private IUserDao userDao;

    @Override
    public boolean login(String username, String password) {
        User user=userDao.findUserByUserName(username);

        if(user!=null&&user.getPassword().equals(password)){
            return true;
        }

        return false;
    }

    @Override
    public List<User> findAll() {
        return userDao.findAll();
    }
    
}
  1. 同样需要在dao的接口中添加方法findAll()
package com.zr.dao;

import com.zr.bean.User;

import java.util.List;

public interface IUserDao {
    User findUserByUserName(String username);
    List<User> findAll();

}
  1. 再在映射文件mapper中添加实现类
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zr.dao.IUserDao">
    <!--别名user小写-->
    <select id="findUserByUserName" parameterType="String" resultType="user">
        select * from tb_user where username=#{username}
    </select>
    <select id="findAll" resultType="user">
        select * from tb_user
    </select>
</mapper>
  1. 方法实现后,这个方法最终实现的结果会在user-list.jsp界面的表里,记得修改表显示的内容,是所有用户。
<tbody>
   <c:forEach items="${users}" var="user">
      <tr>
         <td><input id="ids" name="ids" type="checkbox" value="${user.id}"></td>
         <td>${user.id}</td>
         <td>${user.username}</td>
         <td>${user.password}</td>
         <td class="text-center">
            <a href="/user/toUpdate.do?id=${user.id}" class="btn bg-olive btn-xs">更新</a>
            <a href="/user/deleteById.do?id=${user.id}" class="btn bg-olive btn-xs">删除</a>
            <a href="" class="btn bg-olive btn-xs">添加角色</a>
            
         </td>
      </tr>
    </c:forEach>
   
</tbody>

然后我们也为此页面的增删改都添加了方法名。新建方法我们让它跳转到user-add.jsp,得到用户信息添加入数据库,然后在调用findAll()展示在user-list.jsp中。更新方法我们新建一个toUpdate(int id)方法,根据id找到用户信息,跳转到user-update.jsp页面显示出来,得到修改的信息调用update(User user)方法。每个方法的添加步骤如以上步骤。

  1. 最终的control层:
package com.zr.controller;

import com.zr.bean.User;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

@Controller
@RequestMapping("user")
public class UserController {

    @Autowired
    private IUserService userService;

    @RequestMapping("login.do")
    public ModelAndView login(User user){

        boolean flag=userService.login(user.getUsername(),user.getPassword());
        ModelAndView modelAndView=new ModelAndView();
        if(flag){
            modelAndView.setViewName("main");
        }
        else{
            modelAndView.setViewName("../failer");
        }

        return modelAndView;
    }

    @RequestMapping("findAll.do")
    public  ModelAndView findAll(){
        List<User> users=userService.findAll();
        ModelAndView mv=new ModelAndView();
        mv.setViewName("user-list");           //成功后跳转到user-list展现页面
        mv.addObject("users",users);//把查到的所有对象放入视图解析器

        return mv;

    }

    @RequestMapping("deleteById.do")
    public  String  delete(int id){
        userService.deleteById(id);

        return "redirect:findAll.do";//转发
    }

    @RequestMapping("add.do")
    public String add(User user){
        userService.add(user);

        return "redirect:findAll.do";

    }

    @RequestMapping("toUpdate.do")
    public ModelAndView toUpdate(int id){

        User user=userService.selectUserById(id);
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("user",user);
        modelAndView.setViewName("user-update");

        return modelAndView;
    }

    @RequestMapping("update.do")
    public String update(User user){
        userService.update(user);

        return "redirect:findAll.do";
    }
}
  1. service层的具体实现类:
package com.zr.service.impl;

import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements IUserService {
    //容器创建new
    @Autowired
    private IUserDao userDao;

    @Override
    public boolean login(String username, String password) {
        User user=userDao.findUserByUserName(username);

        if(user!=null&&user.getPassword().equals(password)){
            return true;
        }

        return false;
    }

    @Override
    public List<User> findAll() {
        return userDao.findAll();
    }

    @Override
    public void deleteById(int id) {
        userDao.deleteById(id);
    }

    @Override
    public void add(User user) {
        userDao.add(user);
    }

    @Override
    public User selectUserById(int id) {
        User user=userDao.selectUserById(id);
        return user;
    }

    @Override
    public void update(User user) {
        userDao.update(user);
    }
}
  1. dao层的接口:
package com.zr.dao;

import com.zr.bean.User;

import java.util.List;

public interface IUserDao {
    User findUserByUserName(String username);
    List<User> findAll();

    void deleteById(int id);

    void add(User user);

    User selectUserById(int id);

    void update(User user);
}
  1. dao的具体实现在mapper:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zr.dao.IUserDao">
    <!--别名user小写-->
    <select id="findUserByUserName" parameterType="String" resultType="user">
        select * from tb_user where username=#{username}
    </select>
    <select id="findAll" resultType="user">
        select * from tb_user
    </select>
    <select id="deleteById" resultType="user">
        delete from tb_user where id=#{id}
    </select>
    <select id="add" resultType="user">
        insert into tb_user(username,password) values (#{username},#{password})
    </select>
    <select id="selectUserById" parameterType="int" resultType="user">
        select * from tb_user where id=#{id}
    </select>
    <update id="update" parameterType="user">
        update tb_user set username=#{username},password=#{password}
        where id=#{id}
    </update>
</mapper>

结果展示

原:
在这里插入图片描述
新建:
新建用户

在这里插入图片描述

删除:
在这里插入图片描述
更新:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值