您的位置 首页 java

IDEA版(适合新手小白) Maven整合SSM实现论文管理系统的增删改查

由于学习的需要,学着写了一篇笔记来记录创建的过程,方便以后自己和别人学习使用。

一、开发工具

二、项目结构

三、编写项目

1、创建数据库papersystem

 SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for paper
-- ----------------------------
DROP TABLE IF EXISTS `paper`;
CREATE TABLE `paper`  (
  `paper_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'paperID',
  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'paper名称',
  `number` int(11) NOT NULL COMMENT 'paper数量',
  `detail` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'paper描述',
  PRIMARY KEY (`paper_id`) USING BTREE
) ENGINE =  InnoDB  AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of paper
-- ----------------------------
INSERT INTO `paper` VALUES (1, '机器学习', 2, 'mlmlmlml');
INSERT INTO `paper` VALUES (2, '深度学习', 3, 'dldldl');
INSERT INTO `paper` VALUES (3, '大数据', 4, 'bdbdbd');

SET FOREIGN_KEY_CHECKS = 1;  

2、在项目 pom .xml中加载所需要的jar包

 <?xml version="1.0" encoding="UTF-8"?>

<project xmlns="#34; xmlns:xsi="#34;
  xsi:schemaLocation=" #34;>
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.zyb</groupId>
  <artifactId>PaperSystem</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>PaperSystem  maven  Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>

  <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>
  </properties>

  <dependencies>
    <!-- junit 测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.12.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.12.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.2.12.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.20</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.6</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.25</version>
    </dependency>
    <dependency>
      <groupId> javax .servlet</groupId>
      <artifactId> jstl </artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>PaperSystem</finalName>
    < plugin Management><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see #Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>  

3、在 pojo 包中编写实体类Paper

 package com.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author zyb
 */@Data
@AllArgsConstructor
@NoArgsConstructor
public class Paper {
    private long paperId;
    private String name;
    private int number;
    private String detail;
}  

4、在dao包编写接口PaperDao

 package com.dao;

import com.pojo.Paper;
import org.springframework.stereotype.Repository;
import java.util.List;

/**
 * @author zyb
 */@Repository
public interface PaperDao {

    /**
     * 添加
     * @param paper
     * @return
     */    int addPaper(Paper paper);

    /**
     * 根据id删除
     * @param paperId
     * @return
     */    int deletePaperById(long paperId);

    /**
     * 修改
     * @param paper
     * @return
     */    int updatePaper(Paper paper);

    /**
     * 根据id查询
     * @param paperId
     * @return
     */    Paper queryById(long paperId);

    /**
     * 查询全部信息
     * @return
     */    List<Paper> queryAllPaper();

}  

5、在mapper包中编写PaperMapper.xml

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "#34;>
<mapper namespace="com.dao.PaperDao">

    <resultMap id="paperResultMap" type="Paper">
        <id column="paper_id" property="paperId"/>
        <result column="name" property="name"/>
        <result column="number" property="number"/>
        <result column="detail" property="detail"/>
    </resultMap>

    <select id="queryAllPaper" resultMap="paperResultMap">
        select paper_id,name,number,detail
        from paper;
    </select>

    <select id="queryById" parameterType="long" resultType="Paper">
        select paper_id,name,number,detail
        from paper
        where paper_id=#{paperId};
    </select>

    <insert id="addPaper" parameterType="Paper">
        insert into paper(paper_id,name,number,detail) values(#{paperId},#{name},#{number},#{detail})
    </insert>

    <update id="updatePaper" parameterType="Paper">
        update paper set name=#{name},number=#{number},detail=#{detail} where paper_id=#{paperId}
    </update>

    <delete id="deletePaperById" parameterType="long">
        delete from paper where paper_id=#{paperId}
    </delete>

</mapper>   

6、在service包编写接口PaperService

 package com.service;

import com.pojo.Paper;

import java.util.List;

/**
 * @author zyb
 */public interface PaperService {

    /**
     * 添加
     * @param paper
     * @return
     */    int addPaper(Paper paper);

    /**
     * 根据id删除
     * @param paperId
     * @return
     */    int deletePaperById(long paperId);

    /**
     * 修改
     * @param paper
     * @return
     */    int updatePaper(Paper paper);

    /**
     * 根据id查询
     * @param paperId
     * @return
     */    Paper queryById(long paperId);

    /**
     * 查询全部信息
     * @return
     */    List<Paper> queryAllPaper();
}  

7、在service包的impl子包中编写PaperService接口的实现类

 package com.service.impl;

import com.dao.PaperDao;
import com.pojo.Paper;
import com.service.PaperService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;

/**
 * @author zyb
 */@Service
public class PaperServiceImpl implements PaperService {

    @Resource
    private PaperDao paperDao;

    @ Override 
    public int addPaper(Paper paper) {
        return paperDao.addPaper(paper);
    }

    @Override
    public int deletePaperById(long paperId) {
        return paperDao.deletePaperById(paperId);
    }

    @Override
    public int updatePaper(Paper paper) {
        return paperDao.updatePaper(paper);
    }

    @Override
    public Paper queryById(long paperId) {
        return paperDao.queryById(paperId);
    }

    @Override
    public List<Paper> queryAllPaper() {
        return paperDao.queryAllPaper();
    }

}  

8、在controller包中编写PaperController

 package com.controller;

import com.pojo.Paper;
import com.service.PaperService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import java.util.List;

/**
 * @author zyb
 */@Controller
@RequestMapping("/paper")
public class PaperController {

    @Resource
    private PaperService paperService;

    @RequestMapping("/allPaper")
    public String list(Model model){
        List<Paper> list = paperService.queryAllPaper();
        model.addAttribute("list",list);
        return "allPaper";
    }

    @RequestMapping("/toAddPaper")
    public String toAddPaper(){
        return "addPaper";
    }

    @RequestMapping("/addPaper")
    public String addPaper(Paper paper){
        paperService.addPaper(paper);
        return "redirect:/paper/allPaper";
    }

    @RequestMapping("/del/{paperId}")
    public String deletePaper(@PathVariable("paperId") long paperId){
        paperService.deletePaperById(paperId);
        return "redirect:/paper/allPaper";
    }

    @RequestMapping("/toUpdatePaper")
    public String toUpdatePaper(Model model,long paperId){
        model.addAttribute("paper",paperService.queryById(paperId));
        return "updatePaper";
    }

    @RequestMapping("/updatePaper")
    public String updatePaper(Model model,Paper paper){
        paperService.updatePaper(paper);
        paper=paperService.queryById(paper.getPaperId());
        model.addAttribute("paper",paper);
        return "redirect:/paper/allPaper";
    }

}  

9、在spring包中创建spring-dao.xml、spring-service.xml、spring-mvc.xml

(1)spring-dao.xml

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="#34;
       xmlns:xsi="#34;
       xmlns:context="#34;
       xsi:schemaLocation="
       
       
       #34;>

    <context:property-placeholder location="classpath:jdbc.properties"/>

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.name}"/>
        <property name="password" value="${jdbc.pwd}"/>
    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <property name="typeAliasesPackage" value="com.pojo"/>
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <property name="basePackage" value="com.dao"/>
    </bean>

</beans>  

(2)spring-service.xml

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="#34;
       xmlns:xsi="#34;
       xmlns:context="#34;
       xmlns:tx="#34;
       xsi:schemaLocation="
       
       
       
       
       #34;>

    <context:component-scan base-package="com.service"/>

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"/>

</beans>  

(3)spring-mvc.xml

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="#34;
       xmlns:xsi="#34;
       xmlns:context="#34;
       xmlns:mvc="#34;
       xsi:schemaLocation="
       
       
       
       
       #34;>

    <mvc:annotation-driven/>

    <mvc:default-servlet-handler/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <context:component-scan base-package="com.controller"/>

</beans>  

(4)jdbc.properties

 jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/papersystem?useSSL=false&useUnicode=true&characterEncoding=utf8
jdbc.name=root
jdbc.pwd=123456  

(5)mybatis-config.xml

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "#34;>
<configuration>
    <settings>
        <setting name="useGeneratedKeys" value="true"/>
        <setting name="useColumnLabel" value="true"/>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>  

(6)log4j.properties

 log4j.rootLogger=ERROR,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n  

10、配置web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="#34;
         xmlns:xsi="#34;
         xsi:schemaLocation=" #34;
         version="4.0">

  <!--前端控制器-->
  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!--encodingFilter乱码过滤-->
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

</web-app>  

11、编写jsp页面

(1)index.jsp

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>首页</title>
    <link rel="stylesheet" href="#34;>
    <style type="text/css">
        a{
            text-decoration: none;
            color: black;
            font-size: 18px;
        }
        h3{
            width: 180px;
            height: 38px;
            margin: 100px auto;
            text-align: center;
            line-height: 38px;
            background: deepskyblue;
            border-radius: 4px;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="row clearfix">
            <div class="col-md-12 column">
                <div class="page-header">
                    <h1>
                        基于SSM框架的管理系统:简单实现增、删、改、查
                    </h1>
                </div>
            </div>
        </div>
    </div>
    <br><br>
    <h3>
        <a href="${pageContext.request.contextPath}/paper/allPaper">点击进入管理系统</a>
    </h3>
</body>
</html>
  

(2)allPaper.jsp

 <%@ taglib prefix="c" uri="#34; %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Paper列表</title>
    <%--BootStrap美化页面--%>
    <link href="#34; rel="stylesheet">

</head>
<body>
<div class="container">

    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
                <h1>
                    基于SSM框架的管理系统:简单实现增、删、改、查
                </h1>
            </div>
        </div>
    </div>

    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
               <small>论文列表--显示所有论文</small>
            </div>
        </div>
    </div>

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

    <div class="row clearfix">
        <div class="col-md-12 column">
            <table class="table table-hover table-striped">
                <thead>
                <tr>
                    <th>论文编号</th>
                    <th>论文名称</th>
                    <th>论文数量</th>
                    <th>论文详情</th>
                    <th>操作</th>
                </tr>
                </thead>
                <tbody>
                <c:forEach var="paper" items="${list}" varStatus="status">
                    <tr>
                        <td>${paper.paperId}</td>
                        <td>${paper.name}</td>
                        <td>${paper.number}</td>
                        <td>${paper.detail}</td>
                        <td>
                            <a href="${pageContext.request.contextPath}/paper/toUpdatePaper?paperId=${paper.paperId}">更改</a>
                              |  
                            <a href="${pageContext.request.contextPath}/paper/del/${paper.paperId}">删除</a>
                        </td>
                    </tr>
                </c:forEach>
                </tbody>
            </table>
        </div>
    </div>

</div>
</body>
</html>  

(3)addPaper.jsp

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>新增论文</title>
    <%--BootStrap美化页面--%>
    <link href="#34; rel="stylesheet">
</head>
<body>
<div class="container">

    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
                <h1>
                    基于SSM框架的管理系统:简单实现增、删、改、查
                </h1>
            </div>
        </div>
    </div>

    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
                <small>新增论文</small>
            </div>
        </div>
    </div>

    <form action="${pageContext.request.contextPath}/paper/addPaper" method="post" >
       论文名称:<input type="text" name="name"><br><br><br>
       论文数量:<input type="text" name="number"><br><br><br>
       论文详情:<input type="text" name="detail"><br><br><br>
        <input type="submit" value="添加" >
    </form>


</div>
</body>
</html>  

(4)updatePaper.jsp

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>修改论文</title>
    <%--BootStrap美化页面--%>
    <link href="#34; rel="stylesheet">
</head>
<body>
<div class="container">

    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
                <h1>
                    基于SSM框架的管理系统:简单实现增、删、改、查
                </h1>
            </div>
        </div>
    </div>

    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
                <small>修改论文</small>
            </div>
        </div>
    </div>

    <form action="${pageContext.request.contextPath}/paper/updatePaper" method="post" >
        <input type="hidden" name="paperId" value="${paper.paperId}">
        论文名称:<input type="text" name="name" value="${paper.name}"><br><br><br>
        论文数量:<input type="text" name="number" value="${paper.number}"><br><br><br>
        论文详情:<input type="text" name="detail" value="${paper.detail}"><br><br><br>
        <input type="submit" value="提交" >
    </form>


</div>
</body>
</html>
  

12、运行项目

首页

论文列表页面

新增论文页面

修改论文页面

文章来源:智云一二三科技

文章标题:IDEA版(适合新手小白) Maven整合SSM实现论文管理系统的增删改查

文章地址:https://www.zhihuclub.com/182902.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图