实例!使用Idea创建SSM框架的Maven项目

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 实例!使用Idea创建SSM框架的Maven项目


01

配置pom文件

通常,我们需要使用ssm框架的时候,需要加载一系列的jar包,在未使用maven的时候,我们则采用的是将所需jar包统统复制到项目的lib目录中,现在我们不必那样做了,只需要简单的在pom文件中配置即可。

那么,怎么配置呢?

我们以mysql的驱动jar为例(其他jar包配置方式一样,可执行按此配置),mysql的驱动jar包我采用的是:mysql-connector-java-8.0.23,配置方式如下:

1)maven官网为我们提供了jar包在pom文件中的配置方式,打开官网:https://search.maven.org/,我们在输入框中输入需要配置的jar包名,如下:

可以在左边框中的下拉列表里选择版本,在右边的Apache Maven下面,复制所有代码。

复制到项目中pom文件的这里:

如果你不知道ssm需要哪些jar包,可以去百度搜索,pom中配置方式是一样的,在这就不一一列举了,下面是整个pom.xml文件的代码:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.xiongxiong</groupId>
  <artifactId>BookManageSys</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>BookManageSys Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</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>
    <!--配置jar包-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.23</version>
    </dependency>
    <!--spring的jar包=-->
    <!--springmvc的jar包-->
    <dependency>
      <groupId>javaee</groupId>
      <artifactId>javaee-api</artifactId>
      <version>5</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.2.5.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.2.2.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.2.2.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>4.1.9.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>4.2.1.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>4.1.9.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>4.2.3.release</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>4.1.9.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>4.2.3.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.1.9.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.2.2</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.0</version>
    </dependency>
    <dependency>
      <groupId>org.javassist</groupId>
      <artifactId>javassist</artifactId>
      <version>3.17.1-GA</version>
    </dependency>
    <dependency>
      <groupId>cglib</groupId>
      <artifactId>cglib</artifactId>
      <version>2.2.2</version>
    </dependency>
    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.2</version>
    </dependency>
    <!--加载jstl的包-->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>BookManageSys</finalName>
    <pluginManagement><!-- 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 http://maven.apache.org/ref/current/maven-core/default-bindings.html#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>

这是最后导入的jar包:

02

在main目录中创建resources资源文件夹

该资源文件夹用来存放ssm的配置文件,applicationContext.xml,springmvc-servlet.xml,mybatis-config.xml

各配置文件代码如下:

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:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
  http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
  http://www.springframework.org/schema/mvc 
  http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
  http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context-3.1.xsd
  ">
    <!-- 配置数据源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/schooldb"></property>
        <property name="username" value="root"></property>
        <property name="password" value="root"></property>
    </bean>
    <!--sqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
        <property name="mapperLocations">
            <list>
                <value>classpath:com/dao/*.xml</value>
            </list>
        </property>
    </bean>
    <!-- 配置自动映射器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.dao"></property>
    </bean>
    <!-- 扫描所有注解信息 -->
    <context:component-scan base-package="com.dao,com.service,com.web"/>
    <mvc:annotation-driven/>
</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:p="http://www.springframework.org/schema/p"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
  http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
  http://www.springframework.org/schema/p 
  http://www.springframework.org/schema/p/spring-p-3.1.xsd
  http://www.springframework.org/schema/aop 
  http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
  http://www.springframework.org/schema/mvc 
  http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
  http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context-3.1.xsd
  ">
    <!-- 扫描注解 -->
    <context:component-scan base-package="com.web,com.dao,com.service"/>
    <mvc:annotation-driven/>
    <!--扫描静态资源文件-->
    <mvc:default-servlet-handler/>
    <!-- 配置前缀和后缀 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
</beans>

mybatis-config.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <!-- 打印sql语句 -->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <!-- 起别名 -->
    <typeAliases>
        <package name="com.entity"/>
    </typeAliases>
</configuration>

03

配置web.xml文件

web.xml文件所在的路径:src/main/webapp/WEB/INF/wen.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  xmlns="http://xmlns.jcp.org/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
          version="4.0">
  <display-name>Archetype Created Web Application</display-name>
  <welcome-file-list>
    <welcome-file>/</welcome-file>
  </welcome-file-list>
  <!-- springmvc的配置 -->
  <servlet>
    <servlet-name>springmvc</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>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <!-- spring -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!-- 监听配置 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 解决springmvc传递值乱码问题 -->
  <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>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

04

创建src资源资源文件夹

在main文件夹中创建资源文件夹src,且在里面创建实体层、Dao层、Service层和web层。

下面我们来在src中创建包com(包名随便起),在com中分别创建entity、dao、service以及web包(Package),分别在各个包中创建对应的类,其目录结构如下:

下面是各个类的代码:

BookManage.java:

package com.entity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
public class BookManage {
    private int bid;
    private String bname;
    private String bauthor;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date btime;
    private int btype;
    public int getBid() {
        return bid;
    }
    public void setBid(int bid) {
        this.bid = bid;
    }
    public String getBname() {
        return bname;
    }
    public void setBname(String bname) {
        this.bname = bname;
    }
    public String getBauthor() {
        return bauthor;
    }
    public void setBauthor(String bauthor) {
        this.bauthor = bauthor;
    }
    public Date getBtime() {
        return btime;
    }
    public void setBtime(Date btime) {
        this.btime = btime;
    }
    public int getBtype() {
        return btype;
    }
    public void setBtype(int btype) {
        this.btype = btype;
    }
}

BookManageMapper.java

package com.dao;
import com.entity.BookManage;
import java.util.List;
public interface BookManageMapper {
    //查询全部
    List<BookManage> findBookAll();
    //添加
    int addBook(BookManage bookManage);
    //删除
    int delBook(int bid);
}

BookManageMapper.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.dao.BookManageMapper">
    <!-- 查询全部 -->
    <select id="findBookAll" resultType="BookManage">
        select * from BookManage;
    </select>
    <!-- 添加 -->
    <insert id="addBook" parameterType="BookManage">
        insert into bookmanage (bname,bauthor,btime,btype)
        value(#{bname},#{bauthor},#{btime},#{btype});
    </insert>
    <!-- 删除 -->
    <delete id="delBook" parameterType="int">
        delete from BookManage where bid = #{bid};
    </delete>
</mapper>

IBookManageService.java

package com.service;
import com.entity.BookManage;
import java.util.List;
public interface IBookManageService {
    //查询全部
    List<BookManage> findBookAll();
    //添加
    int addBook(BookManage bookManage);
    //删除
    int delBook(int bid);
}

BookManageServiceImpl.java

package com.service.impl;
import com.dao.BookManageMapper;
import com.entity.BookManage;
import com.service.IBookManageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("bookManageService")
public class BookManageServiceImpl implements IBookManageService {
    @Autowired
    private BookManageMapper bookManageMapper;
    @Override
    public List<BookManage> findBookAll() {
        return bookManageMapper.findBookAll();
    }
    @Override
    public int addBook(BookManage bookManage) {
        return bookManageMapper.addBook(bookManage);
    }
    @Override
    public int delBook(int bid) {
        return bookManageMapper.delBook(bid);
    }
    public BookManageMapper getBookManageMapper() {
        return bookManageMapper;
    }
    public void setBookManageMapper(BookManageMapper bookManageMapper) {
        this.bookManageMapper = bookManageMapper;
    }
}

IndexController.java

package com.web;
import com.entity.BookManage;
import com.service.IBookManageService;
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
@RequestMapping("/")
public class IndexController {
    //创建Service的对象
    @Autowired
    private IBookManageService bookManageService;
    //默认进入首页
    @RequestMapping("/")
    public String index(Model model){
        List<BookManage> bookManageList =
                bookManageService.findBookAll();
        model.addAttribute("bookManageList",bookManageList);
        return "index";
    }
    //删除
    @RequestMapping("delBook")
    public String delBook(Model model,int bid){
        bookManageService.delBook(bid);
        index(model);
        return "index";
    }
    //添加
    @RequestMapping("addBook")
    public String addBook(BookManage bookManage,Model model){
        bookManageService.addBook(bookManage);
        index(model);
        return "index";
    }
    public IBookManageService getBookManageService() {
        return bookManageService;
    }
    public void setBookManageService(IBookManageService bookManageService) {
        this.bookManageService = bookManageService;
    }
}

05

引入jQuery环境

将jquery的环境拷贝到项目中的webapp下:

06

首页

修改index.jsp,使其实现进入页面即查询数据库中所有数据功能,代码如下:

<%--
  Created by IntelliJ IDEA.
  User: 24519
  Date: 2021/1/20
  Time: 10:38
  To change this template use File | Settings | File Templates.
--%>  
<%@ page isELIgnored="false"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
  <head>
    <title>首页</title>
  </head>
  <body>
    <h1>图书信息</h1>
  <table border="1">
    <tr>
      <td>图书名称</td>
      <td>图书作者</td>
      <td>购买时间</td>
      <td>图书分类</td>
      <td>操作</td>
    </tr>
    <c:forEach items="${bookManageList}" var="book">
      <tr>
        <td>${book.bname}</td>
        <td>${book.bauthor}</td>
        <td>
            <f:formatDate value="${book.btime}" pattern="yyyy-MM-dd"></f:formatDate>
            </td>
        <td>
            <c:if test="${book.btype==1}">
              计算机/软件
            </c:if>
          <c:if test="${book.btype==2}">
            小说/文摘
          </c:if>
          <c:if test="${book.btype==3}">
            杂项
          </c:if>
        </td>
        <td><a href="delBook?bid=${book.bid}">删除</a></td>
      </tr>
    </c:forEach>
  </table>
  <a href="addBook.jsp" style="color:red">新增图书信息</a>
  <script src="js/jquery-1.12.4.js" type="text/javascript"></script>
  <script type="text/javascript">
    $(function(){
        $("tr:even").css("background","green");
        $("tr:first").css("background","blue");
    });
  </script>
  </body>
</html>

07

添加图书的页面

创建添加数据的页面addBook.jsp,代码如下:

注意,addBook.jsp和index.jsp都需要放在webapp目录下。

08

配置tomcat

配置tomcat

测试发现,正常运行。

最后附数据库脚本代码:

/*
SQLyog Professional v12.08 (32 bit)
MySQL - 5.5.27 : Database - schooldb
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`schooldb` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `schooldb`;
/*Table structure for table `bookmanage` */
DROP TABLE IF EXISTS `bookmanage`;
CREATE TABLE `bookmanage` (
  `bid` int(11) NOT NULL AUTO_INCREMENT,
  `bname` varchar(40) NOT NULL,
  `bauthor` varchar(40) NOT NULL,
  `btime` datetime NOT NULL,
  `btype` int(11) NOT NULL,
  PRIMARY KEY (`bid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
/*Data for the table `bookmanage` */
insert  into `bookmanage`(`bid`,`bname`,`bauthor`,`btime`,`btype`) values (1,'三国演义','罗贯中','2021-09-08 00:00:00',2),(2,'水浒传','施耐庵','2021-09-08 00:00:00',2),(3,'狂人日记','魯迅','2021-09-08 00:00:00',3),(4,'改善java的151个建议','秦少波','2021-09-08 00:00:00',1);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

今天的分享就到这里了,明天见!


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
Java Maven
手把手教你搭建Maven项目
手把手教你搭建Maven项目
31 0
|
1月前
|
Java Maven 开发工具
maven导入项目出现Unable to import maven project: See logs for details
maven导入项目出现Unable to import maven project: See logs for details
11 0
maven导入项目出现Unable to import maven project: See logs for details
|
20天前
|
Java 数据库连接 Maven
ssm整合idea版本
ssm整合idea版本
|
30天前
|
Java Maven
maven项目导出可执行jar
maven项目导出可执行jar
30 0
|
1月前
|
Java Maven
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
14 0
|
21天前
|
Java 开发工具 Maven
IntelliJ IDEA安装教程(超详细)
IntelliJ IDEA安装教程(超详细)
81 1
|
27天前
|
XML IDE 开发工具
别看你风吹头顶凉但你绝对没有过这样方便的插件Intellij IDEA 自带的 Vim
别看你风吹头顶凉但你绝对没有过这样方便的插件Intellij IDEA 自带的 Vim
41 0
|
1月前
|
IDE Java 开发工具
如何安装intellij IDEA
如何安装intellij IDEA
|
2月前
|
IDE Java 数据库连接
IntelliJ IDEA安装使用教程——社区免费版——附中文插件安装
IntelliJ IDEA安装使用教程——社区免费版——附中文插件安装
251 0

推荐镜像

更多