第五天:搭建新SSM框架+完成用户管理系统查询、更新、添加、删除、搜索功能

ssm框架的搭建

ssm框架

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。(转载自百度百科)

开发环境

  • 64位的Windows系统
  • Server version: 5.5.58
  • MySQL Community Server (GPL)
  • java version “1.8.0_211”
  • SQLyog
  • IDEA
  • Apache Maven 3.6.0

具体步骤

第一步:搭建数据库

使用SQLyog,创建数据库java7,在数据库中添加表tb_user,具体设置如下:
在这里插入图片描述
在这里插入图片描述

第二步:用maven创建项目

使用IDEA创建新的项目
在这里插入图片描述
创建成功后,如果已经配置好了maven,将会自动导入包。

第三步:导入ssm包

打开素材中的pom.xml文件,替换项目目录中pom.xml文件中的propertiesdependencies中的内容。

第四步:创建目录结构

在这里插入图片描述

第五步:编写bean层和dao层

//UserInfo.java
package com.zhongruan.bean;

public class UserInfo {
    // 1. 封装属性
    private int id;
    private String username;
    private String password;

    // 2. get and set
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    // 3. 构造函数
    public UserInfo(int id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public UserInfo() {
    }

    // 4. 重写toString()函数
    @Override
    public String toString() {
        return "UserInfo{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
//UserDao.java
package com.zhongruan.dao;

import com.zhongruan.bean.UserInfo;

import java.util.List;

public interface UserDao {

    // 全部查询
    List<UserInfo> findAllUser();

    // 更新前查询
    UserInfo findUserById(int id);

    //更新
    void updateUserById(UserInfo userInfo);

    //删除
    void deleteUserById(int id);

    //添加
    void addUser(UserInfo userInfo);

    //搜索
    List<UserInfo> findUserByUsername(String username);

}

第六步:配置 Spring + Mybatis

在这里插入图片描述
将这三个文件导入到resources文件夹中。
第一个文件:两个的所有配置文件
第二个文件:数据库连接的配置文件
第三个文件:日志文件
修改db.properties文件中的jdbc,url和jdbc.password
修改applicationContext.xml文件,由于Spring扫描dao和bean,需要修改扫描的路径。
在resources文件夹下新建mapper文件夹,在mapper文件夹中创建UserMapper.xml文件。将素材中同名文件中的内容写入。

第七步:编写mapper

在resources工程目录下添加包mapper,在mapper包内创建文件UserMapper.xml。

//UserMapper.xml

<?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.zhongruan.dao.UserDao" >

    <!-- 全部查询 -->
    <select id="findAllUser" resultType="com.zhongruan.bean.UserInfo">
        select * from tb_user
    </select>

    <!-- 更新前查询 -->
    <select id="findUserById" parameterType="java.lang.Integer" resultType="com.zhongruan.bean.UserInfo">
        select * from tb_user where id = #{id}
    </select>

    <!-- 更新 -->
    <update id="updateUserById" parameterType="com.zhongruan.bean.UserInfo">
        update tb_user set username = #{username}, password = #{password} where id = #{id}
    </update>

    <!-- 删除 -->
    <delete id="deleteUserById" parameterType="java.lang.Integer">
        delete from tb_user where id = #{id}
    </delete>

    <!-- 添加 -->
    <insert id="addUser" parameterType="com.zhongruan.bean.UserInfo">
        insert into tb_user value (#{id}, #{username}, #{password})
    </insert>

    <!-- 搜索 -->
    <select id="findUserByUsername" parameterType="java.lang.String" resultType="com.zhongruan.bean.UserInfo">
        select * from tb_user where username = #{username}
    </select>

</mapper>

第八步:编写service层

在这里插入图片描述

//UserInfoServiceImpl.java

package com.zhongruan.service.impl;

import com.zhongruan.bean.UserInfo;
import com.zhongruan.dao.UserDao;
import com.zhongruan.service.UserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Service
public class UserInfoServiceImpl implements UserInfoService {

    @Autowired
    private UserDao userDao;

    @Override
    //全部查询
    public List<UserInfo> findAllUser(){
        return userDao.findAllUser();
    }

    @Override
    //更新前查询
    public UserInfo findUserById(int id){
        return userDao.findUserById(id);
    }

    //更新
    @Override
    public void updateUserById(UserInfo userInfo){
        userDao.updateUserById(userInfo);
    }

    //删除
    @Override
    public void deleteUserById(int id){
        userDao.deleteUserById(id);
    }

    //添加
    @Override
    public void addUser(UserInfo userInfo){
        userDao.addUser(userInfo);
    }

    //搜索
    public List<UserInfo> findUserByUsername(String username){
        return userDao.findUserByUsername(username);
    }

}

//UserInfoService.java

package com.zhongruan.service;

import com.zhongruan.bean.UserInfo;

import java.util.List;

public interface UserInfoService {

    // 全部查询
    List<UserInfo> findAllUser();

    // 更新前查询
    UserInfo findUserById(int id);

    //更新
    void updateUserById(UserInfo userInfo);

    //删除
    void deleteUserById(int id);

    //添加
    void addUser(UserInfo userInfo);

    //搜索
    List<UserInfo> findUserByUsername(String username);
}

第九步:配置SpringMVC和web.xml

SpringMVC

spring-mvc.xml文件导入到resources工程目录下,修改其中的扫描路径。

web.xml

在webapp工程目录下创建WEB-INF文件夹,将web.xml文件导入到WEB-INF文件夹中。

第十步:引入jsp页面

将jsp文件夹导入到webapp过程目录下。

第十一步:编写controller层

//UserInfoController.java

package com.zhongruan.controller;


import com.zhongruan.bean.UserInfo;
import com.zhongruan.service.UserInfoService;
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 UserInfoController {

    @Autowired
    private UserInfoService userInfoService;

    @RequestMapping("/findAllUser.do")
    public ModelAndView findAllUser(){

        List<UserInfo> userInfoList =userInfoService.findAllUser();

        ModelAndView mv = new ModelAndView();
        mv.addObject("userInfoList", userInfoList);
        mv.setViewName("user-list");

        return mv;

    }

    //更新前查询
    @RequestMapping("/findUserById.do")
    public ModelAndView findUserById(int id){
        UserInfo userInfo = userInfoService.findUserById(id);

        ModelAndView mv = new ModelAndView();
        mv.addObject("userInfo", userInfo);
        mv.setViewName("user-update");

        return mv;
    }

    //更新
    @RequestMapping("/updateUserById.do")
    public String updateUserById(UserInfo userInfo){
        userInfoService.updateUserById(userInfo);
        return "redirect:findAllUser.do";
    }

    //删除
    @RequestMapping("/deleteUserById.do")
    public String deleteUserById(int id){
        userInfoService.deleteUserById(id);
        return "redirect:findAllUser.do";
    }

    //添加
    @RequestMapping("/addUser.do")
    public String addUser(UserInfo userInfo){
        userInfoService.addUser(userInfo);
        return "redirect:findAllUser.do";
    }

    //搜索
    @RequestMapping("/findUserByUsername")
    public ModelAndView findUserByUsername(String username){
        List<UserInfo> userInfoList = userInfoService.findUserByUsername(username);

        ModelAndView mv = new ModelAndView();
        mv.addObject("userInfoList", userInfoList);
        mv.setViewName("user-list");

        return mv;
    }

}

第十二步:连接Tomcat服务器

在这里插入图片描述

测试结果

打印所有信息。
在这里插入图片描述
点击“新建”选项跳转到添加用户页面,输入完成后点击保存,自动跳转到全部用户页面。
在这里插入图片描述
点击删除按钮,删除该条信息,并自动刷新全部用户页面。
在这里插入图片描述
点击“更新”按钮,跳转到修改用户信息界面,输入框中保存了原数据,输入完成点击保存,自动跳转到全部用户页面。
在这里插入图片描述
在输入框中输入需要查询的用户名点击查询,用户列表将打印符合要求的用户信息,点击“刷新”选项将会重新打印全部用户信息。
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值