IDEA+Maven搭建SSM框架项目完整流程

IDEA+Maven搭建SSM框架项目

  • 创建数据库
  • 创建工程
  • 写项目
  • 利用Tomcat进行部署
  • 参考博客

创建数据库

本文数据库使用MySQL 5.6.24,使用SQLyog来进行操作。
首先创建一个名为library的数据库,在数据库中创建一张名为book的表,表结构如下图所示(注意引擎、字符集、核对)。
IDEA+Maven搭建SSM框架项目完整流程_第1张图片

创建工程

  1. 打开maven的安装路径,找到conf文件夹下的setting.xml文件,打开。

IDEA+Maven搭建SSM框架项目完整流程_第2张图片
在mirrors标签里添加如下代码。


  alimaven
  central
  aliyun maven
  http://maven.aliyun.com/nexus/content/repositories/central/
 

具体如下图所示。
IDEA+Maven搭建SSM框架项目完整流程_第3张图片

  1. 点击File->New->Project,选择maven,选择自己安装的JDK,将Create from archetype打勾,选择org.apache.maven.archetypesmaven-archetype-webapp,注意不要选成上面的cocoon-22-archetype-webapp,选择之后点击next。
    IDEA+Maven搭建SSM框架项目完整流程_第4张图片
  2. 输入公司名,项目名,版本。

IDEA+Maven搭建SSM框架项目完整流程_第5张图片
4. 选择maven的路径,可以选择IDEA自带的maven,也可以选择自己安装的maven;User settings File选择第一步中maven的安装路径下的setting.xml文件。如果C盘的用户名下有.m2文件夹,可以将setting.xml文件复制到.m2文件夹下,在此处选择.m2文件夹下的setting.xml文件。

IDEA+Maven搭建SSM框架项目完整流程_第6张图片
5. 出现了BUILD SUCCESS即完成了工程的创建。此时右下角可能会出现一个小提示框:Maven projects need to be imported,选择Enable Auto-import。
IDEA+Maven搭建SSM框架项目完整流程_第7张图片

写项目

  1. 在工程的src/main目录下面新建两个目录java和resources:右击main文件夹->New->Directory,输入目录名。
    IDEA+Maven搭建SSM框架项目完整流程_第8张图片
    建好之后如下图。
    IDEA+Maven搭建SSM框架项目完整流程_第9张图片
  2. 右击java目录,选择Mark Directory as,选择Sources Root;右击resources目录,选择Mark Directory as,选择Resources Root,如下图所示。

IDEA+Maven搭建SSM框架项目完整流程_第10张图片
IDEA+Maven搭建SSM框架项目完整流程_第11张图片

  1. 在工程的根目录下面新建target文件夹,系统自动将其设置为“Excluded” 。
  2. 在刚才新建的java文件下新建“com”包,再在com包下新建四个包,分别命名为:pojo,dao,service,controller。其中pojo包存放自定义的java类。如:paper类,user类,book类等,每个类的属性设为private,并提供public属性的getter/setter方法让外界访问;dao包定义接口,包含与数据库进行交互的功能;service包定义接口,包含系统所提供的功能。(之后还会在service包下再新建impl包);controller:控制器,负责接收页面请求,转发和处理。
  3. 在resources目录下新建Directory:“mapper”(用于存放xxxMapper.xml文件)和“spring”(用于存放spring-xxx.xml配置文件),新建文件:“jdbc.properties”(mysql数据库配置文件),”log4j.properties”(日志输出配置文件),”mybatis-config.xml”(mybatis框架配置文件)。 建好之后整个工程的目录如下图所示。
    IDEA+Maven搭建SSM框架项目完整流程_第12张图片
  4. 在工程中的pom.xml文件配置项目所需要的jar包。
    首先修改properties标签:

  UTF-8
  1.8
  1.8
  
  5.0.2.RELEASE
  
  3.2.6
  
  1.7.7
  1.2.17
  0.9.5.2
  1.1.2

接着修改dependencies标签:


  
  
  
    junit
    junit
    3.8.1
    test
  
  
  
  
    org.springframework
    spring-core
    ${spring.version}
  
  
    org.springframework
    spring-beans
    ${spring.version}
  
  
    org.springframework
    spring-context
    ${spring.version}
  
  
    org.springframework
    spring-context-support
    ${spring.version}
  
  
  
    org.springframework
    spring-jdbc
    ${spring.version}
  
  
    org.springframework
    spring-tx
    ${spring.version}
  
  
  
    org.springframework
    spring-web
    ${spring.version}
  
  
    org.springframework
    spring-webmvc
    ${spring.version}
  
  
    org.springframework
    spring-test
    ${spring.version}
  
  
  
    javax.servlet
    javax.servlet-api
    3.0.1
    provided
  
  
    javax.servlet.jsp
    jsp-api
    2.2
    provided
  
  
    javax.servlet
    jstl
    1.2
  
  
    taglibs
    standard
    1.1.2
  
  
    com.fasterxml.jackson.core
    jackson-databind
    2.9.4
  
  
  
  
    mysql
    mysql-connector-java
    5.1.38
  
  
  
    com.mchange
    c3p0
    0.9.5.2
  
  
  
    org.mybatis
    mybatis
    ${mybatis.version}
  
  
  
    org.mybatis
    mybatis-spring
    1.3.1
  
  
  
  
    ch.qos.logback
    logback-classic
    1.1.1
  


  1. 自定义类。根据本文例子所用数据库的表,定义Book类。右击pojo包->New->Java Class,新建Book类,类里有bookId,bookName,bookAuthor,bookContent,bookAddDate五个属性,并添加Getter和Setter方法。注意不能有构造方法,可以重写toString方法。
package com.pojo;

public class Book {

    private String bookId;
    private String bookName;
    private String bookAuthor;
    private String bookContent;
    private String bookAddDate;

    public String getBookId() {
        return bookId;
    }

    public void setBookId(String bookId) {
        this.bookId = bookId;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public String getBookAuthor() {
        return bookAuthor;
    }

    public void setBookAuthor(String bookAuthor) {
        this.bookAuthor = bookAuthor;
    }

    public String getBookContent() {
        return bookContent;
    }

    public void setBookContent(String bookContent) {
        this.bookContent = bookContent;
    }

    public String getBookAddDate() {
        return bookAddDate;
    }

    public void setBookAddDate(String bookAddDate) {
        this.bookAddDate = bookAddDate;
    }
}

  1. 在dao包中新建接口BookDao,接口里面有对Book表的增删改查方法。其具体实现在后面的BookMapper.xml中。
package com.dao;

import com.pojo.Book;

import java.util.List;

public interface BookDao {

    int addBook(Book book);

    int deleteBookById(String id);

    int updateBook(Book book);

    Book queryById(String id);

    List queryAllBook();
}
  1. 在service包中新建接口BookService,接口里面包含所有的业务。
package com.service;

import com.pojo.Book;

import java.util.List;

public interface BookService {

    int addBook(Book book);

    int deleteBookById(String id);

    int updateBook(Book book);

    Book queryById(String id);

    List queryAllBook();
}

  1. 右击service包,新建impl包,在impl包中新建BookServiceImpl类,继承BookService接口,用来具体实现BookService接口中的方法。
    注意:
    a. 在接口上方添加注解@Service,此注解用来将service放入spring容器中。
    b. 在类属性上方添加注解@Autowired,此注解用来让spring自动创建对象。
package com.service.impl;

import com.dao.BookDao;
import com.pojo.Book;
import com.service.BookService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BookServiceImpl implements BookService {

    @Autowired
    private BookDao bookDao;

    @Override
    public int addBook(Book book) {
        return bookDao.addBook(book);
    }

    @Override
    public int deleteBookById(String id) {
        return bookDao.deleteBookById(id);
    }

    @Override
    public int updateBook(Book book) {
        return bookDao.updateBook(book);
    }

    @Override
    public Book queryById(String id) {
        return bookDao.queryById(id);
    }

    @Override
    public List queryAllBook() {
        return bookDao.queryAllBook();
    }
}
  1. 在controller包中新建类BookController,用来控制页面的跳转。
    注意:
    a. 在类上方添加注解@Controller和注解@RequestMapping("/book"),引号内容根据程序而定。
    b. 在属性上方添加注解@Autowired,用来自动创建对象。
    c. 在每个方法上方添加注解@RequestMapping("/******"),引号内容根据程序而定。
package com.controller;

import com.pojo.Book;
import com.service.BookService;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/book")
public class BookController {
    @Autowired
    private BookService bookService;

    @RequestMapping("/allBook")
    public String list(Model model) {
        List list = bookService.queryAllBook();
        model.addAttribute("list", list);
        return "allBook";
    }

    @RequestMapping("toAddBook")
    public String toAddBook() {
        return "addBook";
    }

    @RequestMapping("/addBook")
    public String addBook(Book book) {
        bookService.addBook(book);
        return "redirect:/book/allBook";
    }

    @RequestMapping("/del/{bookId}")
    public String deleteBook(@PathVariable("bookId") String id) {
        bookService.deleteBookById(id);
        return "redirect:/book/allBook";
    }

    @RequestMapping("toUpdateBook")
    public String toUpdateBook(Model model, String id) {
        model.addAttribute("book", bookService.queryById(id));
        return "updateBook";
    }

    @RequestMapping("/updateBook")
    public String updateBook(Model model, Book book) {
        bookService.updateBook(book);
        book = bookService.queryById(book.getBookId());
        model.addAttribute("book", book);
        return "redirect:/book/allBook";
    }
}
  1. 新建mybatis框架mapper代理开发配置文件:右击resources目录中的mapper->New->File,输入BookMapper.xml。此文件用来具体实现BookDao中的增删改查方法。



    
        
        
        
        
        
    
    
        INSERT INTO book(id,name,author,content,add_date) VALUE (#{bookId},#{bookName}, #{bookAuthor}, #{bookContent}, #{bookAddDate})
    

    
        DELETE FROM book WHERE id=#{bookId}
    

    
        UPDATE book
        SET name = #{bookName}, author = #{bookAuthor}, content = #{bookContent}
        WHERE  id = #{bookId}
    

    
    


  1. 在resource/spring包下分别新建配置文件:spring-dao.xml , spring-mvc.xml , spring-service.xml。新建时右击spring包,选择New->XML Configuration File->Spring Config,如下图所示。
    IDEA+Maven搭建SSM框架项目完整流程_第13张图片
    spring-dao.xml(spring-mybatis整合配置文件)文件内容:



    
    
    

    
    
        
        
        
        
        

        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    


spring-mvc.xml(spring mvc配置文件)文件内容:



    
    
    
    

    
    

    
    
        
        
        
    

    
    

spring-service.xml文件内容:



    
    

    
    
        
        
    
    
    

  1. 在在jdbc.properties文件中配置mysql数据库,注意这里的数据库名、表名,用户名,密码要根据自身情况来修改。
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/library?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root
  1. 在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
  1. 在mybatis-config.xml文件中配置mybtis框架。



    
    
        
        

        
        

        
        
    

  1. 配置web.xml文件




  

  
  Archetype Created Web Application
  
    dispatcher
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      classpath:spring/spring-*.xml
    
  
  
    dispatcher
    
    /
  

  
  
    encodingFilter
    
      org.springframework.web.filter.CharacterEncodingFilter
    
    
      encoding
      utf-8
    
  

  
    encodingFilter
    /*
  


        
  1. 在刚才新建的jsp目录中新建三个jsp文件:addBook.jsp,allBook.jsp,updateBook.jsp。这是用来向用户展示的界面。
    addBook.jsp内容:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>


    新增图书
    
    
    


编号:


书名:


作者:


简介:


添加时间:


allBook.jsp内容:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<% String appPath = request.getContextPath(); %>


    Book列表
    
    
    


编号 书名 作者 简介 添加时间 操作
${book.bookId} ${book.bookName} ${book.bookAuthor} ${book.bookContent} ${book.bookAddDate} 更改 | 删除

updateBook.jsp内容:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>


    修改图书信息
    
    
    


书名: 作者: 简介:
  1. 修改index.jsp文件。
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<%
    pageContext.setAttribute("path", request.getContextPath());
%>



    首页
    




点击进入管理页面

利用Tomcat进行部署

  1. 点击上方的Run->Edit Configurations。
    IDEA+Maven搭建SSM框架项目完整流程_第14张图片
  2. 点击左上角“+”,选择Tomcat Server->Local,进入界面后更改Name(也可以不改),选择安装在本地的Tomcat地址。接着点击Deployment,点击“+”,选择Artifact,选择war exploded。之后出现的Application context选择空的那个。选择完之后点击Apply。

IDEA+Maven搭建SSM框架项目完整流程_第15张图片
IDEA+Maven搭建SSM框架项目完整流程_第16张图片
IDEA+Maven搭建SSM框架项目完整流程_第17张图片
IDEA+Maven搭建SSM框架项目完整流程_第18张图片
3. 点击Run运行,查看效果。
IDEA+Maven搭建SSM框架项目完整流程_第19张图片
IDEA+Maven搭建SSM框架项目完整流程_第20张图片
IDEA+Maven搭建SSM框架项目完整流程_第21张图片

参考博客

https://blog.csdn.net/weixin_42747657/article/details/81160501

你可能感兴趣的:(IDEA+Maven搭建SSM框架项目完整流程)