SSM架构整合(实现增删改查)


一、搭配环境

  1. 底层配置文件:文章指路:SSM框架整合(配置文件)
  2. 文章目录结构

在这里插入图片描述

二、简单测试环境

  1. StudentController.java

注解:@ResponseBody不需要定义一个jsp页面,直接在页面上显示返回的字符串

@Controller
@RequestMapping("/student")
public class StudentController {

    @RequestMapping("/test")
    @ResponseBody
    public String test(){

        return "This is a test";
    }
}
  1. 测试,开启tomcat,结果报错:java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter

  2. 解决方法:

  • 打开Project Structure…

在这里插入图片描述

  • 选择Artifacts,并在WEB-INF里面Create Directory,命名为lib

在这里插入图片描述

  • 选中lib,加入Library Files

在这里插入图片描述

  • 全选中后,OK,之后OK,再进行测试

在这里插入图片描述

  • 再次测试:成功
    在这里插入图片描述

二、增删改查测试

1. 数据库建表

CREATE TABLE `student` (
`id`  varchar(15) NOT NULL ,
`name`  varchar(20) NOT NULL ,
`java`  int(10) NULL ,
`web`  int(10) NULL ,
PRIMARY KEY (`id`)
)
;

2. pojo与数据库对应的实体类

Student.java

public class Student {
    private String id;
    private String name;
    private int java;
    private int web;

    public Student() {
    }

    public Student(String id, String name, int java, int web) {
        this.id = id;
        this.name = name;
        this.java = java;
        this.web = web;
    }

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getJava() {
        return java;
    }

    public void setJava(int java) {
        this.java = java;
    }

    public int getWeb() {
        return web;
    }

    public void setWeb(int web) {
        this.web = web;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", java=" + java +
                ", web=" + web +
                '}';
    }
}

3.增删改查操作

  • dao层:数据库实现增删改查

StudentMapper.java

public interface StudentMapper {
    //查询所有学生
    List<Student> selectAllStudent();

    //增加一位学生
    int addStudent(Student student);

    //修改一位学生
    int updateStudent(Student student);

    //删除一位同学
    int deleteStudent(int id);

    //查询一位学生byid
    Student selectStudentById(int id);
}

StudentMapper.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.gaolang.dao.StudentMapper">

    <!--查询所有学生-->
    <select id="selectAllStudent" resultType="Student">
        select * from student
    </select>

    <!--增加一位学生-->
    <insert id="addStudent" parameterType="Student">
        insert into student values (#{id},#{name},#{java},#{web})
    </insert>

    <!--修改一位学生-->
    <update id="updateStudent" parameterType="Student">
        update student set name=#{name},java=#{java},web=#{web} where id=#{id}
    </update>

    <!--删除一位学生-->
    <delete id="deleteStudent" parameterType="int">
        delete from student where id=#{id}
    </delete>

    <!--查询一位同学-->
    <select id="selectStudentById" parameterType="int" resultType="Student">
        select * from student where id = #{id}
    </select>

</mapper>
  • service层:对dao层数据加工,这里暂时和dao层相同

StudentService.java

public interface StudentService {
    //查询所有学生
    List<Student> selectAllStudent();

    //增加一位学生
    int addStudent(Student student);

    //修改一位学生
    int updateStudent(Student student);

    //删除一位同学
    int deleteStudent(int id);

    //查询一位学生byid
    Student selectStudentById(int id);
}

StudentServiceImpl.java

public class StudentServiceImpl implements StudentService{
    private StudentMapper studentMapper;

    public void setStudentMapper(StudentMapper studentMapper) {
        this.studentMapper = studentMapper;
    }

    @Override
    public List<Student> selectAllStudent() {
        return studentMapper.selectAllStudent();
    }

    @Override
    public int addStudent(Student student) {
        return studentMapper.addStudent(student);
    }

    @Override
    public int updateStudent(Student student) {
        return studentMapper.updateStudent(student);
    }

    @Override
    public int deleteStudent(int id) {
        return studentMapper.deleteStudent(id);
    }

    @Override
    public Student selectStudentById(int id) {
        return studentMapper.selectStudentById(id);
    }
}
  • controller层:调用service层进行数据处理和页面跳转

StudentController.java


@Controller
@RequestMapping("/student")
public class StudentController {


    @Autowired
    @Qualifier("StudentServiceImpl")
    private StudentService studentService;


    @RequestMapping("/test")
    @ResponseBody
    public String test(){

        return "This is a test";
    }

    //所有学生
    @RequestMapping("/allStudent")
    public String allStudent(Model model){

        List<Student> students = studentService.selectAllStudent();
        model.addAttribute("list",students);
        return "allStudent";
    }

    //跳转到addStudent界面
    @RequestMapping("/toAddStudent")
    public String toAddStudent(){
        return "addStudent";
    }

    //对addStudent界面操作,并返回allStudent界面
    @RequestMapping("/addStudent")
    public String addStudent(Student student){
        studentService.addStudent(student);
        return "redirect:/student/allStudent";
    }

    //跳转到updateStudent界面
    @RequestMapping("/toUpdateStudent")
    public String toUpdateStudent(Model model,int id){
        Student student = studentService.selectStudentById(id);
        model.addAttribute("student",student);
        return "updateStudent";
    }

    //对updateStudent界面操作,并返回allStudent界面
    @RequestMapping("/updateStudent")
    public String updateStudent(Student student){
        studentService.updateStudent(student);
        return "redirect:/student/allStudent";
    }

    @RequestMapping("/deleteStudent")
    public String deleteStudent(int id){

        studentService.deleteStudent(id);
        return "redirect:/student/allStudent";
    }


}
  • 几个jsp页面

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <a href="${pageContext.request.contextPath}/student/allStudent">点击</a>
  </body>
</html>

allStudent.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta name="viewport" content="width= device-width,initial-scale=1.0">
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>
<div class="page-header"   style="text-align:center">
    <h1>查询成绩</h1>
</div>
<table class="table table-bordered">
    <thead>
    <tr>
        <td>学号</td>
        <td>姓名</td>
        <td>java</td>
        <td>web</td>
        <td></td>
    </tr>
    </thead>

    <tbody>
    <c:forEach var="student" items="${list}">
        <tr>
            <td>${student.id}</td>
            <td>${student.name}</td>
            <td>${student.java}</td>
            <td>${student.web}</td>
            <td>
                <a href="${pageContext.request.contextPath}/student/toUpdateStudent?id=${student.id}">更改</a>|
                <a href="${pageContext.request.contextPath}/student/deleteStudent?id=${student.id}">删除</a>
            </td>
        </tr>
    </c:forEach>
    </tbody>

</table>

<div class="row">
    <div class="col-md-4 column">
        <a class="btn btn-primary" href="${pageContext.request.contextPath}/student/toAddStudent">新增</a>
    </div>

</div>

</body>
</html>

addStudent.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta name="viewport" content="width= device-width,initial-scale=1.0">
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>
<div class="page-header"   style="text-align:center">
    <h1>学生添加</h1>

</div>
<form class="form-horizontal" action="${pageContext.request.contextPath}/student/addStudent" method="post">
    ID:<input type="text" name="id"><br><br><br>
    姓名:<input type="text" name="name"><br><br><br>
    java:<input type="text" name="java"><br><br><br>
    web:<input type="text" name="web"><br><br><br>
    <input type="submit" value="添加">

</form>

</body>
</html>

updateStudent.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta name="viewport" content="width= device-width,initial-scale=1.0">
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>
<div class="page-header"   style="text-align:center">
    <h1>学生修改</h1>

</div>
<form class="form-horizontal" action="${pageContext.request.contextPath}/student/updateStudent" method="post">
    ID:<input type="text" name="id" value="${student.id}"><br><br><br>
    姓名:<input type="text" name="name" value="${student.name}"><br><br><br>
    java:<input type="text" name="java" value="${student.java}"><br><br><br>
    web:<input type="text" name="web" value="${student.web}"><br><br><br>
    <input type="submit" value="修改">

</form>

</body>
</html>


  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值