ssm项目从零到精通的超全解析(含项目源码)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 目录前言mvcjsp代码css代码前言写这篇文章主要是为了给初学者从浅入深进行巩固(后面会慢慢多这一类的文章)文中主要包含思路以及代码的逻辑、代码细节的补充等这个项目主要是ssm框架搭建的一个后台网站主要涉及的知识点有spring、springmvc、mybatis这些知识点可通过我之前的文章进行学习mvc代码模块主要涉及mvc所谓mvc为M——Model(模型,即JavaBean)V——View(视图,即页面)C——Controller(控制层,即与前端交互的类)关于为什么

前言

写这篇文章主要是为了给初学者从浅入深进行巩固(后面会慢慢多这一类的文章)
文中主要包含思路以及代码的逻辑、代码细节的补充等

项目的主要功能主要是通过ssm项目围绕数据库的增删改查以及页面信息的显示

主要的前台界面显示如下,本项目主要完善了数据库的后台信息

在这里插入图片描述
通过点击网站的页面信息
在页面信息有具体数据库的东西
并且有其其增删改查按键信息
在这里插入图片描述
操作都会影响其数据库后台信息的设置
==此处就不接下来展示后面的页面==
具体

项目的源码大致如下
可以通过csdn的下载方式进行下载
ssm项目(ssm+maven+sql+bootstrap+jsp).rar
或者通过github的方式进行下载
github上的ssm项目资源

==**⭐⭐⭐⭐⭐⭐
如果通过github上下载的,好用记得点收藏
⭐⭐⭐⭐⭐⭐**==

这个项目主要是ssm框架搭建的一个后台网站
学习的框架知识点可通过我这篇文章进行系统学习
java框架零基础从入门到精通的学习路线(超全)

主要涉及的知识点有
java,spring,springmvc,mybatis,前端html+css+jsp+bootstrap,maven,sql,tomcat

这些知识点可通过我之前的文章进行学习

java的基础知识点:

  1. java零基础从入门到精通(全)
  2. javaSE从入门到精通的二十万字总结(一)
  3. javaSE从入门到精通的二十万字总结(二)
  4. javaSE从入门到精通的二十万字总结(三)

大纲框架

  • 搭建数据库,以及数据库表
  • 用mybatis生成逆向工程或者书写mybatis的代码模块
  • 使用spring ioc 、aop以及事务
  • 使用springmvc 中的web进行交互
  • 搭建前端页面进行渲染页面

1. 依赖文件

依赖文件主要是jar包
该工程通过maven工程建立
具体可看我之前的文章

  1. Maven实战从入门到精通(全)
  2. Maven实战从入门到精通(全)

之后pom.xml引入相应的知识框架依赖包
部分截图如下
在这里插入图片描述
除了依赖包意外
还有在src下的xml文件也要生成到target下
所以要多配置这个

<build>
    <resources>

        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>

    </resources>
</build>

2. mybatis

搭建这个模块可看我之前的文章
Mybatis从入门到精通(全)

整合数据库文件
搭配数据库信息
直接运行sql文件内容
类似这种配置信息

drop table if exists t_student;
create table t_student 
(
   id                   int(10)                        not null auto_increment,
   name                 varchar(20)                    null,
   age                  int(10)                        null,
   constraint PK_T_STUDENT primary key clustered (id)
);

insert into t_student(name,age) values("zhangsan",25);
insert into t_student(name,age) values("lisi",28);
insert into t_student(name,age) values("wangwu",23);

或者

drop table if exists books;
CREATE TABLE books 
(
bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id',
bookName VARCHAR(100) NOT NULL COMMENT '书名',
bookCounts INT(11) NOT NULL COMMENT '数量',
constraint PK_books primary key clustered (bookID)
) ;

INSERT  INTO books(bookID,bookName,bookCounts)VALUES (1,"Java从入门到放弃",1);
INSERT  INTO books(bookID,bookName,bookCounts)VALUES (2,"MySQL从删库到跑路",10);
INSERT  INTO books(bookID,bookName,bookCounts)VALUES (3,"Linux从进门到入狱",5);

之后构建sql加载入数据库软件
在这里插入图片描述

具体可看我之前的文章

数据库的知识点:

  1. 数据库查询常用语句语法
  2. 数据库中增删改常用语法语句(全)
  3. 数据库中事务(Transaction)的详解

之后通过mybatis的逆向工程生成实体bean、映射文件、Dao接口
具体可看我之前的文章
mybatis逆向工程详细配置讲解(全)

部分截图如下
在这里插入图片描述

或者进行配置代码模块
书写实体bean、映射文件、Dao接口

具体mybatis的配置模板大致如下
mybatis配置模板详细分析(全)
主要是配置

  • 数据库输出日志
  • sql mapper的映射文件位置
  • 类名或者包名的别名(可有可无)
  • 数据库的配置信息(外部引用文件或者在spring中配置外部引用的文件)

数据库的信息可以配置在mybatis的配置文件中或者是spring的配置文件中
也可以使用外部文件,将其引用引进来
引用的数据库外部文件
具体信息如下

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
jdbc.username=root
jdbc.password=123456

部分功能代码截图如下
在这里插入图片描述

3. spring

关于这部分内容可看我之前的文章
Spring框架从入门到学精(全)

关于spring的配置模板大致如下

  1. spring-dao配置模板详细分析(全)
  2. spring-service配置模板详细分析(全)

    主要是配置

    • 注解中扫描的包
    • 数据库的配置信息(外部引用文件或者在mybatis中配置外部引用的文件)
    • 引用事务的配置

关于spring的一些相关注解以及java的一些知识点可看我之前的文章
java常用函数源码剖析与实战汇总

部分截图如下
在这里插入图片描述
主要的大致意思是
接口实现类,通过注解注入bookdmapper的实体类,实体类通过注入到数据库源中

4. springmvc

关于这部分内容可看我之前的文章
SpringMVC从入门到精通(全)

关于spring的配置模板大致如下
springmvc配置模板详细分析(全)

主要是配置

  • 注解驱动扫描
  • 静态资源扫描
  • 包名的扫描
  • 视图解析器

因为是web的一个升级版
还要配置一个web.xml的配置文件
主要配置

  • DispatchServlet
  • 配置编码过滤器

识别的DispatchServlet
主要的配置文件有springmvc 以及spring的配置文件
为了将他们三个放置在一起
可单独弄一个文件配置
具体如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <import resource="classpath:spring-dao.xml"/>
    <import resource="classpath:spring-service.xml"/>
    <import resource="classpath:spring-mvc.xml"/>



</beans>

代码模块主要涉及mvc
所谓mvc为

M——Model(模型,即JavaBean)
V——View(视图,即页面)
C——Controller(控制层,即与前端交互的类)

关于为什么要分成这几个架构
可看我之前的文章讲解
java为何使用Service、Dao、以及Controller层的设计

controller:控制层,接收前端传过来的数据
service:业务层,处理制层传过来的数据
dao:数据访问层,即把业务层传过来的数据存放在数据库

数据层的实体类定义和数据库名字一一对应比较好

==实体类如下==

@Data这个注解主要是可以自动生成get、set、equals、hashCode、canEqual、toString方法

具体关于这几个注解可看我这篇文章
spring中@Data注解详细解析

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {
    private int bookID;
    //等等
}

或者不使用@Data这个注解
直接定义也可以get、set、equals、hashCode、canEqual、toString方法

==定义接口类==

import java.util.List;
//BookService:底下需要去实现,调用dao层
public interface BookService {
    //增加一个Book
    int addBook(Books book);
    //等等
}

==定义接口实现类==

public class BookServiceImp implements BookService{
    //调用dao层的操作,设置一个set接口,方便Spring管理
    
    @Autowired
    private BookMapper bookMapper;
    
    @Override
    public int addBook(Books book) {
        return bookMapper.addBook(book);
    }
}

主要在界面交互层的代码模块
在这里插入图片描述
此处还会涉及到转发与重定向的区别
详情可看我之前的文章
转发和重定向的区别及使用方法(全)

5. 前端界面

本身作为后端开发者,前端界面的知识点了解少
但学起来还是很简单的
具体可看我之前的文章
前端知识点:

  1. html从入门到精通(全)
  2. css属性从入门到精通(全)
  3. JavaScript从入门到精通(全)
  4. Bootstrap从入门到精通(全)

如果你不想学习,最基本的页面配置如何传输的路径可以当成模板进行使用

前端界面部分截图如下
在这里插入图片描述

5.1 jsp

如果使用的jsp页面,链接可以不用Thymeleaf的格式,但是路径不能使用相对路径,因为超链接使用的是绝对路径来获取,但是如果写了绝对路径,封锁住了上下文,路径就不是很灵活。为此引入了动态获取的方式

  • jsp的域对象pageContext,获取上下文的路径request.contextPath
  • 如果改动了页面,jsp是可以自动更新部署的

主要区别在于jsp的页面显示

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>首页</h1>
<a href="${pageContext.request.contextPath}/book/allBook">数据库后台</a>
</body>
</html>

在其springmvc.xml中不用thymeleaf配置,只需要配置其InternalResourceViewResolver

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

5.2 bootstrap+css

以下修饰的代码大部分是在bootstrap

==关于文本修饰==
text-decoration 规定添加到文本的修饰
主要常用的参数选择:

参数 功能
none 默认,定义标准的文本。
underline 文本下的一条线
overline 文本上的一条线
line-through 穿过文本下的一条线
blink 闪烁的文本

==关于移动鼠标的代码参数==
通过使用:hover 选择器
用于选择鼠标指针浮动在上面的元素

background-color 选择鼠标浮动后的颜色

==关于背景的一些代码参数==

background-attachment:设置背景图像是否固定或者随着页面的其余部分滚动
主要放一些常用的参数选择:

参数 功能
scroll 背景图片随着页面的滚动而滚动,这是默认的
fixed 背景图片不会随着页面的滚动而滚动
local 背景图片会随着元素内容的滚动而滚动

background-size:指定背景图片大小
主要放一些常用的参数选择:

参数 功能
length 设置背景图片高度和宽度。第一个值设置宽度,第二个值设置的高度。如果只给出一个值,第二个是设置为 auto(自动)
percentage 将计算相对于背景定位区域的百分比。第一个值设置宽度,第二个值设置的高度。如果只给出一个值,第二个是设置为"auto(自动)"
cover 此时会保持图像的纵横比并将图像缩放成将完全覆盖背景定位区域的最小大小。
contain 此时会保持图像的纵横比并将图像缩放成将适合背景定位区域的最大大小

6. 总结

通过的这篇文章
可以了解到框架该如何搭建以及搭建的思路是怎么进行

更加急速的提升代码能力
是在原项目代码模块中进行修改编译执行

再搭配该项目的时候可能会出现如下的错误
详情可通过以下搜索
bug专栏

==其他项目还在实时更新==

<3 一键三连不迷路 <3
<3 一键三连不迷路 <3
<3 一键三连不迷路 <3
<3 一键三连不迷路 <3
<3 一键三连不迷路 <3
<3 一键三连不迷路 <3

相关文章
|
2月前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
21天前
|
存储 缓存 Java
什么是线程池?从底层源码入手,深度解析线程池的工作原理
本文从底层源码入手,深度解析ThreadPoolExecutor底层源码,包括其核心字段、内部类和重要方法,另外对Executors工具类下的四种自带线程池源码进行解释。 阅读本文后,可以对线程池的工作原理、七大参数、生命周期、拒绝策略等内容拥有更深入的认识。
什么是线程池?从底层源码入手,深度解析线程池的工作原理
|
25天前
|
开发工具
Flutter-AnimatedWidget组件源码解析
Flutter-AnimatedWidget组件源码解析
|
21天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
175 37
|
8天前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
13天前
|
编解码 开发工具 UED
QT Widgets模块源码解析与实践
【9月更文挑战第20天】Qt Widgets 模块是 Qt 开发中至关重要的部分,提供了丰富的 GUI 组件,如按钮、文本框等,并支持布局管理、事件处理和窗口管理。这些组件基于信号与槽机制,实现灵活交互。通过对源码的解析及实践应用,可深入了解其类结构、布局管理和事件处理机制,掌握创建复杂 UI 界面的方法,提升开发效率和用户体验。
64 12
|
2月前
|
测试技术 Python
python自动化测试中装饰器@ddt与@data源码深入解析
综上所述,使用 `@ddt`和 `@data`可以大大简化写作测试用例的过程,让我们能专注于测试逻辑的本身,而无需编写重复的测试方法。通过讲解了 `@ddt`和 `@data`源码的关键部分,我们可以更深入地理解其背后的工作原理。
30 1
|
2月前
|
C# 开发者 Windows
勇敢迈出第一步:手把手教你如何在WPF开源项目中贡献你的第一行代码,从选择项目到提交PR的全过程解析与实战技巧分享
【8月更文挑战第31天】本文指导您如何在Windows Presentation Foundation(WPF)相关的开源项目中贡献代码。无论您是初学者还是有经验的开发者,参与这类项目都能加深对WPF框架的理解并拓展职业履历。文章推荐了一些适合入门的项目如MvvmLight和MahApps.Metro,并详细介绍了从选择项目、设置开发环境到提交代码的全过程。通过具体示例,如添加按钮点击事件处理程序,帮助您迈出第一步。此外,还强调了提交Pull Request时保持专业沟通的重要性。参与开源不仅能提升技能,还能促进社区交流。
32 0
|
2月前
|
C# Windows 开发者
超越选择焦虑:深入解析WinForms、WPF与UWP——谁才是打造顶级.NET桌面应用的终极利器?从开发效率到视觉享受,全面解读三大框架优劣,助你精准匹配项目需求,构建完美桌面应用生态系统
【8月更文挑战第31天】.NET框架为开发者提供了多种桌面应用开发选项,包括WinForms、WPF和UWP。WinForms简单易用,适合快速开发基本应用;WPF提供强大的UI设计工具和丰富的视觉体验,支持XAML,易于实现复杂布局;UWP专为Windows 10设计,支持多设备,充分利用现代硬件特性。本文通过示例代码详细介绍这三种框架的特点,帮助读者根据项目需求做出明智选择。以下是各框架的简单示例代码,便于理解其基本用法。
72 0
|
2月前
|
开发框架 Android开发 iOS开发
跨平台开发的双重奏:Xamarin在不同规模项目中的实战表现与成功故事解析
【8月更文挑战第31天】在移动应用开发领域,选择合适的开发框架至关重要。Xamarin作为一款基于.NET的跨平台解决方案,凭借其独特的代码共享和快速迭代能力,赢得了广泛青睐。本文通过两个案例对比展示Xamarin的优势:一是初创公司利用Xamarin.Forms快速开发出适用于Android和iOS的应用;二是大型企业借助Xamarin实现高性能的原生应用体验及稳定的后端支持。无论是资源有限的小型企业还是需求复杂的大公司,Xamarin均能提供高效灵活的解决方案,彰显其在跨平台开发领域的强大实力。
31 0

推荐镜像

更多
下一篇
无影云桌面