前言

学习完MyBatis,Spring,SpringMVC之后,我们需要做的就是将这三者联系起来,Spring实现业务对象管理,Spring MVC负责请求的转发和视图管理, MyBatis作为数据对象持久化引擎。这样搭配的优点是:轻量、自由度高、Spring与Spring MVC契合度更好。通过一个图书管理示例完成SSM框架的集成。

本章目标

通过图书管理系统完成SSM框架的集成。

项目构建

一.父模块

1.我们打开idea选择create new project,然后选择Maven项目,我们暂时先不要选择maven骨架,等我们的视图层(WEB-UI层)的时候再选择maven骨架

2.这一步输入组织名,模块名称

Groupld:组织名

artifactId:模块名称

version:版本号

在Maven世界中,每个工程都有它唯一的 组织名、模块名、版本 ,这三个就是maven项目的坐标。一个maven工程可以打包成jar、war、pom等形式,但是它们都是拥有上述三个坐标的。我们在项目过程中导入的jar包就是通过上述坐标值唯一确定的。因此,我们在创建一个maven工程时会要求指定具体的 组织名、模块名、版本、打包方式。

二.子模块(common层)

1.创建子模块common层,然后点击next

 

三.子模块(Dao层)

1.子模块Dao层和Comon一样,这里就不再做过多的描述了

2.直接完成最后一步

四.子模块(Service层)

1.同理,如上

五.子模块(Entity层)

1.实体层和mmon层一样都是同样的操作步骤,这里我们就不进行截图了,操作步骤都一样

六.子模块(WEB-UI层)

1.子模块web-ui层需要讲一下,因为我们这一层是视图层,所以我们需要选择maven骨架。

2.然后点击next,输入模块名之后finish就可以了,在这里我们需要选择自己本地的中央仓库。自此我们的多模块项目已经搭建好了

3.完整的项目结构如下:

4.在这里我们发现视图层多了webapp这个文件夹,以后的开发过程中我们的视图都是放在WEB_INF目录下的

common模块:通用模块,不依赖其它任何模块,主要有utils、可以在多个不同项目中使用

entitie模块:POJO、VO、DTO

dao模块:数据持久化,访问数据库,这里使用Mybatis

service模块:业务模块,处理业务逻辑

webui模块:B/S结构的表示层,主要用于在浏览器中显示数据,提供用户接口

模块依赖

(1)父模块依赖

1.接下来我们去父模块的pom.xml文件进行统一的模块管理,为了方便管理版本和后续添加依赖不那么繁琐,我们在父模块pom.xml文件中只对依赖进行统一管理起来,而不进行依赖,当我们需要哪一个依赖的时候,我们只需要引入即可。

父模块pom.xml文件


(2)子模块Comon层模块依赖

common模块中的pom.xml文件

(3)子模块Dao层模块依赖

Dao模块中的pom.xml文件,这一层中我们需要依赖common层和实体层,因为在这一层中我们涉及到和数据库打交道,一张表就对应一个POJO

(4)子模块Service层模块依赖

Service模块中的pom.xml文件,这一层中我们需要依赖dao层

(5)子模块Entity层模块依赖

实体层暂时不需要依赖任何的模块,Entity模块中的pom.xml文件

(6)子模块WEB-UI层模块依赖

Service模块中的pom.xml文件,这一层中我们需要依赖service层

(7)最终的依赖效果

这里只展示了common层中的依赖,剩下的依赖也一样

连接数据库

1.这是navicat的操作界面,前面的一些连接配置我在这里就不进行过多的描述了。

  

2.右键localhost_3306选择新建数据库,输入数据的名称,字符集我们选择倒数第二个,也就是utf-8的然后确定就可了

3.数据库脚本

文件配置

文件配置是一项非常繁琐的工作内容,稍有不慎整个项目就废了,所以需要非常的细心才有可能将这一整个项目搭建成功,否则将会一夜之间回到解放前。所以我所操作的每一个不大家都需要谨慎再谨慎。

1.首先我们先移除父模块的src目录,其实移不移除都无所谓,在这里我主要是为了影响干扰,移除之后目录如下

  

2.我们需要在每一个子模块添加对应的包名和配置文件

子模块common层

R.java

子模块dao层

BookMapper.xml

applicationContext.xml

db.properties

##mysql连接字符串
#驱动
mysql.driver=com.mysql.jdbc.Driver
#连接字符串
mysql.url=jdbc:mysql://localhost:3306/booksystem?useUnicode=true&characterEncoding=UTF-8
#用户名
mysql.uid=root
#密码
mysql.password=123456
mysql.acquireIncrement=5
mysql.initialPoolSize=10
mysql.minPoolSize=5
mysql.maxPoolSize=20

mybatis.xml

BookDao,java

package com.booksystem.dao;

import com.booksystem.entity.Book;

import java.util.List;

public interface BookDao {
    //查询全部图书信息
    public List<Book> getAllBooks();

}

子模块entity层

Book.java

写了怎么多的东西,我们需要测试一下,减少错误,现在我们只是在做练习,代码量比较少但是到了真正项目的时候代码量肯定比现在多许多,为了养成这种习惯,我一般写到Dao层的时候就进行测试一下。

BookTest.java

我们看到测试结果已经出来了,如果这一步你成功了的话那么你已经完成了80%了,下一步的话我们就配置service层

子模块service层

BookService

package com.booksystem.service;

import com.booksystem.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
public interface BookService {
    //查询全部图书信息
    public List<Book> getAllBooks();
}

BookImple

package com.booksystem.imple;

import com.booksystem.dao.BookDao;
import com.booksystem.entity.Book;
import com.booksystem.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BookImple  implements BookService {
    @Autowired
    public BookDao bookDao;
    public List<Book> getAllBooks() {
        return bookDao.getAllBooks();
    }
}

子模块webui层

我们发现在这一层中没有存放源代码的文件加,所以我们需要自己添加,选择file,project structure

生成之后的目录

BookController.java

package com.book.controller;

import com.booksystem.common.R;
import com.booksystem.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/book")
public class BookController {
    @Autowired
    public BookService bookService;
    @GetMapping("/getAllBook")
    @ResponseBody
    public R getAllBook(){
        return  R.ok(bookService.getAllBooks());
    }
}

springmvc-servlet.xml

web.xml

3.配置tomcat

4.项目部署

在这里我们就将项目进行热部署就可以了,我们在开发阶段就暂时不进行打包,以后我们有服务器的时候就可以打包成war或者jar包

5.启动项目

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图书管理系统</title>
    <style>
        h1{
            text-align: center;
        }
        #myTab{
            width: 800px;
            margin: 0  auto;
        }
    </style>
</head>
<body>
<h1>图书管理系统</h1>
<table id="myTab" cellpadding="0" cellspacing="0" border="1">
    <tr>
        <td>编号</td>
        <td>名称</td>
        <td>作者</td>
    </tr>
</table>
<script src="js/jquery-1.11.3.min.js"></script>
<script>
    $.ajax({
        url:'/book/getAllBook',
        type:'get',
        dataType:'json',
    }).done(function (data) {
        if(data.code===1){
            $("#myTab tr:not(:eq(0))").remove();
            for (var i=0;i<data.data.length;i++){
                var tr="<tr>";
                tr+="<td>"+(i+1)+"</td>";
                tr+="<td>"+data.data[i].bname+"</td>";
                tr+="<td>"+data.data[i].bauthor+"</td>";
                tr+="</tr>"
                $("#myTab").append(tr);
            }
        }
    })
</script>
</body>
</html>

浅谈IDEA搭建SSM框架的集成的更多相关文章

  1. 浅谈一下SSI+Oracle框架的整合搭建

    浅谈一下SSI+Oracle框架的整合搭建 最近换了一家公司,公司几乎所有的项目都采用的是Struts2+Spring+Ibatis+Oracle的架构,上一个东家一般用的就是JSF+Spring,所 ...

  2. Maven项目搭建(二):Maven搭建SSM框架

    上一章给大家讲解了如何使用Maven搭建web项目. 这次给大家介绍一下怎么使用Maven搭建SSM框架项目. 首先我们来看一下pom.xml的属性介绍: project: pom的xml根元素. p ...

  3. 浅谈Java的集合框架

    浅谈Java的集合框架 一.    初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...

  4. 浅谈java类集框架和数据结构(2)

    继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...

  5. 快速搭建ssm框架

    快速搭建SSM框架 因为最近有很多朋友问我自己的项目搭建的不够完善,并且经常出现一些小问题,那么今天我又整理了一下文档教大家如何快速搭建SSM框架我是用 eclipse搭建的,如果想用idear的话我 ...

  6. Eclipse中使用Maven搭建SSM框架

    Eclipse中不使用Maven搭建SSM框架:https://www.cnblogs.com/xuyiqing/p/9569459.html IDEA中使用Maven搭建SSM框架:https:// ...

  7. 第n次搭建 SSM 框架

    什么说第 N 次搭建SSM框架呢? 刚学习java的时候,搭建 SSM 框架想做一个个人项目之类的,后来没搭起来,也就拖延了,进入公司之后,接触的第一个项目就是SSM的,模仿了一下,也能搭个简简单单的 ...

  8. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(下)

    在上一篇(详解intellij idea 搭建SSM框架(spring+maven+mybatis+mysql+junit)(上))博文中已经介绍了关于SSM框架的各种基础配置,(对于SSM配置不熟悉 ...

  9. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(上)

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

随机推荐

  1. git简介 http://msysgit.github.io/

    集中式vs分布式 Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央服务 ...

  2. NOI 2011 兔农 题解

    事先声明,本博客代码主要模仿accepoc,且仅针对一般如本博主一样的蒟蒻. 这道题不得不说数据良心,给了75分的水分,但剩下25分真心很难得到,因此我们就来讲一讲这剩下的25分. 首先,有数据可知他 ...

  3. 树链剖分 [JLOI2014]松鼠的新家

    [JLOI2014]松鼠的新家 时间限制: 1 Sec  内存限制: 128 MB 题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达, ...

  4. J2EE:Servlet上传文件到服务器,并相应显示

    Servlet 可以与HTML一起使用来允许用户上传文件到服务器 编辑上传文件的页面upload.html 注意事项:上传方式使用POST不能使用GET(GET不能上传文件) 表单 enctype 属 ...

  5. BI之路学习笔记2--SSIS/ETL设计练习三:《DB->定期生成excel表》

    上次笔记记到,用sql任务给参数赋值,映射到变量,然后把数据流任务放到序列容器中进行执行,可以定期生成excel, 现在的问题是: 在EXCEL目标编辑过程中,必须选定某一个特定的excel目标,这样 ...

  6. 将 unsiged char 转换成对应的十六进制字符用以显示出来如 unsiged char a[]={0x00,0x01,0x30,0x38}转化为“00013038”

    int CEnCryptionAndDeCryptionDlg::Byte2Hex(const unsigned char* input,unsigned long inLen, unsigned c ...

  7. 【CYH-02】NOIp考砸后虐题赛:函数:题解

    这道题貌似只有@AKEE 大佬A掉,恭喜! 还有因为c++中支持两个参数数量不同的相同名称的函数调用,所以当时就没改成两个函数,这里表示抱歉. 这道题可直接用指针+hash一下,然后就模拟即可. 代码 ...

  8. maven打包添加依赖

    <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <versio ...

  9. 必懂的wenpack优化

    webpack优化 1.production 模式打包自带优化 tree shaking tree shaking是一个术语.通常用于打包时移除js中未引用的代码(dead-code),它依赖于ES6 ...

  10. 关于STM32F103+ESP8266+阿里云过程之环境搭建和阿里云数据格式设置及注意点(一)

    计划实现功能:将STM32F103采集到的温湿度,PM2.5等数值,通过UART与ESP8266通讯,使得ESP8266对外仅充当串口功能的黑盒.ESP8266通过MTQQ发布订阅数据,设备上传.接收 ...