基于SSM的用户信息管理系统实现

1、环境配置

参考上一篇maven环境配置过程:
https://blog.csdn.net/weixin_42189888/article/details/107456448

2、开发流程

在ssm中有一个相对固定的开发模式。这里就实际操作方法做一下一般的解释:

首先要明确项目的骨架,一般都是分为这么几个层次模块:

  • dao 用于编写与数据库相关操作的接口
  • service 编写业务逻辑服务
  • cotroller 根据用户与界面的交互进行对应的反馈操作
  • 页面编写

一般的开发流程是明确了项目的功能之后,定好用户操作会引起的一系列业务反馈逻辑。思考逻辑会用到哪些数据,在dao层编写最底层的数据操作。抽象出业务可能会用到哪些服务,编写service方法。明确用户会有哪些操作,我们要给用户怎么样的反馈,以此编写controller方法。下面就以此为基础展示系统中增删改查操作的实现。

2.1 查询和登录

1.明确查询的相关接口,根据用户名返回用户,或者是返回一个所有用户的列表:

 User findByUserName(String username);
 List<User> findAll();

2.在mapper中编写sql语句

<select id="findByUserName" parameterType="String" resultType="user">
        select  * from user_tb where username=#{username}
</select>

<select id="findAll" resultType="user">
        select  * from user_tb
</select>

3.编写service层:
注意,在smm中,不用new而用注入的方式生成变量。
这里提供了与查询相关的登录服务。在调用dao层查询到相关用户之后(或查不到)与用户输入的密码进行对比,完成简单的登录身份认证。

 @Autowired
    //private UserDao userDao;//不用new,spring中的Ioc
    private UserDao userDao;
    @Override
    public int login(String username, String password) {
        User user=userDao.findByUserName(username);
        if(user!=null && user.getPassword().equals(password)){
            return user.getId();
        }
        return -1;
    }

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

4.编写controller层获取用户的表单,调用登录服务。并根据登录服务的返回结果,返回不同的界面。
注意请求的注解要根据jsp界面来设置。

   @RequestMapping("/login.do")
    private ModelAndView login(User user){
        int id=userService.login(user.getUsername(),user.getPassword());
        ModelAndView mv=new ModelAndView();
        if(id!=-1){
            mv.setViewName("main");
        }else{
            mv.setViewName("../failer");
        }
        return mv;
    }

    @RequestMapping("/findAll.do")
    public ModelAndView findAll(){
        List<User> users=userService.findAll();
        ModelAndView mv=new ModelAndView();
        mv.addObject("users",users);
        mv.setViewName("user-list");
        return mv;
    }

2.2 增加用户

1.编写增加用户的dao层接口:

   void add(User user);

2.编写insert语句:

 <insert id="add" parameterType="user">
        insert into user_tb (username,password) values (#{username},#{password})
    </insert>

3.编写服务层:

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

4.编写controller:
这里注意一下增加完用户之后直接重定向到主界面体验更好。

    @RequestMapping("/add.do")
    public String add(User user){
        userService.add(user);
        return "redirect:findAll.do";
    }

2.3 删除用户

1.编写增加用户的dao层接口:

    void deleteById(int id);

2.编写delete语句:

<delete id="deleteById" parameterType="int">
        delete from user_tb where id=#{id}
    </delete>

3.编写服务层:

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

4.编写controller:
同样删除用户之后直接重定向到主界面体验更好。

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

2.4 更新用户

这里分两步,第一步是获取要更新的用户信息到用户更新表单,第二步是获取更新信息,更新数据库信息,然后重定向到用户列表

1.编写增加用户的dao层接口:

     User selectById(int id);
    void update(User user);

2.编写update select语句:

 <select id="selectById" parameterType="int" resultType="user">
        select * from user_tb where id=#{id}
    </select>
    <update id="update" parameterType="user">
        update user_tb set username=#{username},password=#{password} where id=#{id}
    </update>

3.编写服务层:

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

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

4.编写controller:
这里有两个用户操作,一个是用户点击更新之后去往用户修改表单。一个是用户填完表单之后提交新的用户信息,并重定向。

 @RequestMapping("/toUpdate.do")
    public ModelAndView toUpdate(int id){
        User user=userService.selectUserById(id);
        ModelAndView mv=new ModelAndView();
        mv.setViewName("user-update");
        mv.addObject("user",user);
        return mv;
    }

    @RequestMapping("/update.do")
    public String update(User user){
        userService.update(user);
        return "redirect:findAll.do";
    }

3、测试

当前数据库的信息
在这里插入图片描述

3.1 运行,登录

在这里插入图片描述
进入主界面
在这里插入图片描述

3.2 进入用户列表,添加一个新用户:

在这里插入图片描述
在这里插入图片描述

3.3 删除用户:

在这里插入图片描述
在这里插入图片描述

3.4 更新用户信息

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42189888/article/details/107525813
今日推荐