欢迎光临散文网 会员登陆 & 注册

SSM框架单表增删改查项目开发流程详解

2023-04-23 21:26 作者:Developer999  | 我要投稿

SSM框架单表增删改查项目开发流程详解

 

 

1.数据库建表;

 

student.sql建表SQL:

create database school;

 

use school;

 

create table student(

  id int(11) unique key auto_increment,

  sno int(11) primary key,

  sname varchar(30),

  sex char(1),

  birth date,

  university varchar(50),

  dept varchar(50),

  major varchar(50),

  appearance varchar(10)

);

 

2. 新建maven项目,并在pom.xml文件中引入下列依赖;

<properties>
    <
project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <
maven.compiler.source>1.7</maven.compiler.source>
    <
maven.compiler.target>1.7</maven.compiler.target>
    <
spring.version>5.2.19.RELEASE</spring.version>
  </
properties>

  <
dependencies>
<!--    junit测试-->
   
<dependency>
      <
groupId>junit</groupId>
      <
artifactId>junit</artifactId>
      <
version>4.12</version>
      <
scope>test</scope>
    </
dependency>

<!--    Spring架包-->
<!--    spring-core
-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-core</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-beans-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-beans</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-context-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-context</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-context-support-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-context-support</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-web-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-web</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-webmvc-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-webmvc</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-expression-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-expression</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-aop-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-aop</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-tx-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-tx</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-aspects-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-aspects</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-jcl-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-jcl</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-jdbc-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-jdbc</artifactId>
      <
version>${spring.version}</version>
    </
dependency>
<!--    spring-test-->
   
<dependency>
      <
groupId>org.springframework</groupId>
      <
artifactId>spring-test</artifactId>
      <
version>${spring.version}</version>
    </
dependency>

<!--    MyBatis架包-->
<!--    mybatis
-->
   
<dependency>
      <
groupId>org.mybatis</groupId>
      <
artifactId>mybatis</artifactId>
      <
version>3.5.9</version>
    </
dependency>

<!--    MyBatisSpring架整合包-->
<!--    mybatis-spring
-->
   
<dependency>
      <
groupId>org.mybatis</groupId>
      <
artifactId>mybatis-spring</artifactId>
      <
version>2.0.7</version>
    </
dependency>

<!--    MySQL-->
<!--    mysql-connector-java
-->
   
<dependency>
      <
groupId>mysql</groupId>
      <
artifactId>mysql-connector-java</artifactId>
      <
version>8.0.30</version>
    </
dependency>

<!--    库连接池包-->
<!--    commons-pool2
-->
   
<dependency>
      <
groupId>org.apache.commons</groupId>
      <
artifactId>commons-pool2</artifactId>
      <
version>2.11.1</version>
    </
dependency>
<!--      commons-dbcp2-->
   
<dependency>
      <
groupId>org.apache.commons</groupId>
      <
artifactId>commons-dbcp2</artifactId>
      <
version>2.9.0</version>
    </
dependency>

<!--      日志包-->
<!--      commons-logging
-->
   
<dependency>
      <
groupId>commons-logging</groupId>
      <
artifactId>commons-logging</artifactId>
      <
version>1.2</version>
    </
dependency>
<!--      log4j-->
   
<dependency>
      <
groupId>log4j</groupId>
      <
artifactId>log4j</artifactId>
      <
version>1.2.17</version>
    </
dependency>
<!--      slf4j-api-->
   
<dependency>
      <
groupId>org.slf4j</groupId>
      <
artifactId>slf4j-api</artifactId>
      <
version>2.0.1</version>
    </
dependency>
<!--      slf4j-log4j12-->
   
<dependency>
      <
groupId>org.slf4j</groupId>
      <
artifactId>slf4j-log4j12</artifactId>
      <
version>2.0.1</version>
    </
dependency>

<!--      Servlet-->
<!--      servlet-api
-->
   
<dependency>
      <
groupId>javax.servlet</groupId>
      <
artifactId>servlet-api</artifactId>
      <
version>2.5</version>
    </
dependency>
<!--      jsp-api-->
   
<dependency>
      <
groupId>javax.servlet</groupId>
      <
artifactId>jsp-api</artifactId>
      <
version>2.0</version>
    </
dependency>

<!--      JSP标签库-->
<!--    jstl
-->
   
<dependency>
      <
groupId>jstl</groupId>
      <
artifactId>jstl</artifactId>
      <
version>1.2</version>
    </
dependency>

       </dependencies>

3.在maven项目中建好如下图所示目录结构;

 

4.在java目录下建好下图所示结构;

 

5、在resources和webapp目录下建好下图所示结构;

 

6.项目源码。

Student.java:

package com.culture.model;

import java.sql.Date;

public class Student {
    private int id;
    private int sno;
    private String sname;
    private char sex;
    private Date birth;
    private String university;
    private String dept;
    private String major;
    private String appearance;

    public int getId() {
        return id;
    }

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

    public int getSno() {
        return sno;
    }

    public void setSno(int sno) {
        this.sno = sno;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public String getUniversity() {
        return university;
    }

    public void setUniversity(String university) {
        this.university = university;
    }

    public String getDept() {
        return dept;
    }

    public void setDept(String dept) {
        this.dept = dept;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getAppearance() {
        return appearance;
    }

    public void setAppearance(String appearance) {
        this.appearance = appearance;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", sno=" + sno +
                ", sname='" + sname + '\'' +
                ", sex=" + sex +
                ", birth=" + birth +
                ", university='" + university + '\'' +
                ", dept='" + dept + '\'' +
                ", major='" + major + '\'' +
                ", appearance='" + appearance + '\'' +
                '}';
    }
}

 

StudentDao.java:

package com.culture.dao;

import com.culture.model.Student;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public interface StudentDao {

    @Insert("insert into student(sno,sname,sex,birth,university,dept,major,appearance) " +
            "values(#{sno},#{sname},#{sex},#{birth},#{university},#{dept},#{major},#{appearance})")
    public void insertStudent(Student student);

    @Select("select * from student order by id")
    public List<Student> selectAllStudent();

    @Select("select * from student where sno=#{sno}")
    public List<Student> selectStudentBySno(int sno);
   
    @Delete("delete from student where sno=#{sno};" +
            "alter table student drop id;" +
            "alter table student add id int(11) unique key auto_increment FIRST;")
    public void deleteStudentBySno(int sno);

    @Delete("truncate table student")
    public void deleteAllStudent(Student student);

    @Update("update student set sname=#{sname},sex=#{sex},birth=#{birth},university=#{university}," +
            "dept=#{dept},major=#{major},appearance=#{appearance} where sno=#{sno}")
    public void updateStudent(Student student);
}

StudentService.java:

package com.culture.service;

import com.culture.model.Student;

import java.util.List;

public interface StudentService {

    public void insertStudent(Student student);

    public List<Student> selectAllStudent();

    public List<Student> selectStudentBySno(int sno);

    public void deleteStudentBySno(int sno);

    public void deleteAllStudent(Student student);

    public void updateStudent(Student student);
}

 

StudentServiceImpl.java:

package com.culture.service.impl;

import com.culture.dao.StudentDao;
import com.culture.model.Student;
import com.culture.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("studentService")
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentDao studentDao;

    @Override
    public void insertStudent(Student student) {
        studentDao.insertStudent(student);
    }

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

    @Override
    public List<Student> selectStudentBySno(int sno) {
        return studentDao.selectStudentBySno(sno);
    }

    @Override
    public void deleteStudentBySno(int sno) {
        studentDao.deleteStudentBySno(sno);
    }

    @Override
    public void deleteAllStudent(Student student) {
        studentDao.deleteAllStudent(student);
    }

    @Override
    public void updateStudent(Student student) {
        studentDao.updateStudent(student);
    }
}

 

index.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
    <form action="./student/insert" method="post">
        学号:<input type="text" name="sno" placeholder="学号" autocomplete="off" required/><br/>
        姓名:<input type="text" name="sname" placeholder="姓名" autocomplete="off" required/><br/>
        性别:<input type="text" name="sex" placeholder="性别" autocomplete="off" required/><br/>
        出生日期:<input type="date" name="birth"/><br/>
        学校:<input type="text" name="university" placeholder="学校" autocomplete="off" required/><br/>
        系别:<input type="text" name="dept" placeholder="系别" autocomplete="off" required/><br/>
        专业:<input type="text" name="major" placeholder="专业" autocomplete="off" required/><br/>
        政治面貌:<input type="text" name="appearance" placeholder="政治面貌" autocomplete="off" required/><br/>
        <input type="submit" value="增加学生"/><input type="reset" value="清空"/>
    </form>

    <a href="./student/selectall">查询所有学生信息</a>
    <br/><br/>

    <form action="./student/selectbysno" method="post">
        学号:<input type="text" name="sno" placeholder="学号" autocomplete="off" required/><br/>
        <input type="submit" value="通过学号查询学生"/><input type="reset" value="清空"/>
    </form>

    <form action="./student/deletebysno" method="post">
        学号:<input type="text" name="sno" placeholder="学号" autocomplete="off" required/><br/>
        <input type="submit" value="通过学号删除学生"/><input type="reset" value="清空"/>
    </form>

    <a href="./student/deleteall">删除所有学生信息</a>
    <br/><br/>

    <form action="./student/update" method="post">
        学号:<input type="text" name="sno" placeholder="学号" autocomplete="off" required/><br/>
        姓名:<input type="text" name="sname" placeholder="姓名" autocomplete="off" required/><br/>
        性别:<input type="text" name="sex" placeholder="性别" autocomplete="off" required/><br/>
        出生日期:<input type="date" name="birth"/><br/>
        学校:<input type="text" name="university" placeholder="学校" autocomplete="off" required/><br/>
        系别:<input type="text" name="dept" placeholder="系别" autocomplete="off" required/><br/>
        专业:<input type="text" name="major" placeholder="专业" autocomplete="off" required/><br/>
        政治面貌:<input type="text" name="appearance" placeholder="政治面貌" autocomplete="off" required/><br/>
        <input type="submit" value="修改学生信息"/><input type="reset" value="清空"/>
    </form>

</body>
</html>

 

insertstudent.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>插入学生信息</title>
    <style>
        body{
            text-align: center;
        }
    </style>
</head>
<body>
<h1>插入成功</h1>
<a href="../index.jsp">返回主页</a>
</body>
</html>

 

selectallstudent.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<head>
    <title>查看所有学生信息</title>
    <style>
        table{
            margin: auto;
            text-align: center;
        }
    </style>
</head>
<body>
    <table border="1px">
        <caption>所有学生信息</caption>
        <tr>
            <th>ID</th>
            <th>学号</th>
            <th>姓名</th>
            <th>性别</th>
            <th>出生日期</th>
            <th>学校</th>
            <th>系别</th>
            <th>专业</th>
            <th>政治面貌</th>
        </tr>
        <c:forEach items="${students}" var="student">
            <tr>
                <td>${student.id}</td>
                <td>${student.sno}</td>
                <td>${student.sname}</td>
                <td>${student.sex}</td>
                <td>${student.birth}</td>
                <td>${student.university}</td>
                <td>${student.dept}</td>
                <td>${student.major}</td>
                <td>${student.appearance}</td>
            </tr>
        </c:forEach>
        <tr>
            <td colspan="9"><a href="../index.jsp">返回主页</a> </td>
        </tr>
    </table>
</body>
</html>

 

selectstudentbysno.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>通过学号查询一个学生</title>
    <style>
        table{
            margin: auto;
            text-align: center;
        }
    </style>
</head>
<body>
    <table border="1px">
        <caption>学生信息</caption>
        <tr>
            <th>ID</th>
            <th>学号</th>
            <th>姓名</th>
            <th>性别</th>
            <th>出生日期</th>
            <th>学校</th>
            <th>系别</th>
            <th>专业</th>
            <th>政治面貌</th>
        </tr>
        <c:forEach items="${onestudent}" var="onestu">
            <tr>
                <td>${onestu.id}</td>
                <td>${onestu.sno}</td>
                <td>${onestu.sname}</td>
                <td>${onestu.sex}</td>
                <td>${onestu.birth}</td>
                <td>${onestu.university}</td>
                <td>${onestu.dept}</td>
                <td>${onestu.major}</td>
                <td>${onestu.appearance}</td>
            </tr>
        </c:forEach>
        <tr>
            <td colspan="9"><a href="../index.jsp">返回主页</a> </td>
        </tr>
    </table>
</body>
</html>

 

updatestudent.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>修改学生信息</title>
    <style>
        body{
            text-align: center;
        }
    </style>
</head>
<body>
<h1>修改成功</h1>
<a href="../index.jsp">返回主页</a>
</body>
</html>

 

deletestudentbysno.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>通过学号删除学生</title>
    <style>
        body{
            text-align: center;
        }
    </style>
</head>
<body>
<h1>成功删除此学号学生</h1>
<a href="../index.jsp">返回主页</a>
</body>
</html>

 

deleteallstudent.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>删除所有学生信息</title>
    <style>
        body{
            text-align: center;
        }
    </style>
</head>
<body>
<h1>删除成功</h1>
<a href="../index.jsp">返回主页</a>
</body>
</html>

 

StudentController.java:

package com.culture.controller;

import com.culture.model.Student;
import com.culture.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;

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

    @Autowired
    private StudentService studentService;

    @RequestMapping("/insert")
    public String insertStudent(Student student){
        studentService.insertStudent(student);
        return "insertstudent";
    }

    @RequestMapping("/selectall")
    public String selectAllStudent(Model model){
        List<Student> students=studentService.selectAllStudent();
        model.addAttribute("students",students);
        return "selectallstudent";
    }

    @RequestMapping("/selectbysno")
    public String selectStudentBySno(int sno,Model model){
        List<Student> onestudent=studentService.selectStudentBySno(sno);
        model.addAttribute("onestudent",onestudent);
        return "selectstudentbysno";
    }

    @RequestMapping("/deletebysno")
    public String deleteStudentBySno(int sno){
        studentService.deleteStudentBySno(sno);
        return "deletestudentbysno";
    }

    @RequestMapping("/deleteall")
    public String deleteAllStudent(Student student){
        studentService.deleteAllStudent(student);
        return "deleteallstudent";
    }

    @RequestMapping("/update")
    public String updateStudent(Student student){
        studentService.updateStudent(student);
        return "updatestudent";
    }
}

 

log4j.properties:

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.dao=DEBUG
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      
xmlns:context="http://www.springframework.org/schema/context"
      
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <!--    配置扫描器,spring管理的是service层和dao层的注解,controller层的注解交给springmvc管理-->
    <context:component-scan base-package="com.culture">
<!--        要忽略的注解-->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
<!--    配置数据源-->
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/school?allowMultiQueries=true"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>
<!--    配置SqlSession工厂-->
    <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--        引入数据源-->
        <property name="dataSource" ref="dataSource"/>
    </bean>
<!--    配置Dao接口所在的类-->
    <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.culture.dao"/>
    </bean>
</beans>

 

springmvc-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      
xmlns:context="http://www.springframework.org/schema/context"
      
xmlns:mvc="http://www.springframework.org/schema/mvc"
      
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--    扫描使得注解生效-->
    <context:component-scan base-package="com.culture">
<!--        只扫描controller层注解-->
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
<!--    配置视图解析器-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
<!--    开启springmvc注解支持-->
    <mvc:annotation-driven/>
</beans>

 

web.xml:

<!DOCTYPE web-app PUBLIC
 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd"
>

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!--    字符集初始化为UTF-8-->
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

<!--  Spring的监听器-->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
 
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc-servlet.xml</param-value>
    </init-param>
<!--    立即启动服务器,加载servlet-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

 

最后,配置T omcat本地服务器,启动Tomcat服务器运行项目。


SSM框架单表增删改查项目开发流程详解的评论 (共 条)

分享到微博请遵守国家法律