SSM框架的WEB项目

article/2025/9/18 23:31:31

工作中我们或多或少都需要自己搭建一个框架,现在常见的Java开源框架组合方式主要为:SSH,spring+springMVC+JDBC,SSM。

其中SSM目前无论是培训机构培训亦或是招聘。都会将会使用SSM框架作为一个重要能力来作为培训或是招聘的重要目标之一,下面我将自己自学时搭建的一个SSM项目分享出来,供初学者参阅。

1.第一步,我们需要搭建好自己的开发环境(IDE) 笔者使用的是myeclipse+tomcat+mysql

2.第二步创建一个web工程 工程名自定义,创建好了之后按照MVC设计模式创建好所有的包或文件夹(domain用于存放javabean对象,config用于存放所有的配置文件),并将SSM框架所需要的所有jar包导入到项目中

3.编写项目的配置文件(配置文件中每部分的含义,有详细的注释说明)

a.spring的配置文件application-context.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:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"><!-- 1.启用spring的注解扫描器 --><!-- 为了加载service层中的事务能够成功被spring管理需要设置spring的配置文件中的注解扫描器不扫描控制层,同时设置springMVC的配置文件不扫描service层。如果不做此设置,事务无法开启--><context:component-scan base-package="scmweb"><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/><!-- expression对应的是注解对象的全类名,而不是开发人员创建的控制层的全类名 --></context:component-scan><!-- 2.配置数据源 --><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><value>classpath:config/jdbc.properties</value></property></bean><bean id="c3p0datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  destroy-method="close"><property name="driverClass" value="${jdbc.driverClassName}"></property><property name="jdbcUrl" value="${jdbc.url}"></property><property name="user" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property></bean><!-- 3.配置mybatis相关的东西 --><!-- 3.1 配置mybatis核心sqlsessionfactory --><bean name="sqlsessionfactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 配置mybatis的主配置文件 --><property name="configLocation" value="classpath:config/mybatis.xml"></property><property name="dataSource" ref="c3p0datasource"></property><!-- 设置自动将指定包下所有的xxxMapper.xml文件引入mybatis --><property name="mapperLocations" value="classpath:scmweb/log/scmdao/*.xml"></property></bean><!-- 3.2 配置sqlSessionTemplate持久化模版(包含了增删查改的模版方法,如果不配置的话需要利用sqlsessionfactory来生成sqlsession对象实现对数据库的操作)-->
<!--       <bean name="sqlSessionTemplate"  class="org.mybatis.spring.SqlSessionTemplate"> -->
<!--       	<constructor-arg index="0" ref="sqlsessionfactory"></constructor-arg> -->
<!--       </bean> --><!-- 4.配置事务相关得东西 --><!-- 4.1 配置事务管理器 --><bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="c3p0datasource"></property></bean><!-- 4.2 配置事务的通知  配置为那种类型的方法加上事务--><tx:advice id="tx" transaction-manager="transactionManager"><tx:attributes><tx:method name="save*" propagation="REQUIRED" rollback-for="Exception"/><!-- 设置了rollback-for属性  那么只要出现异常(无论是否被手动捕获)都会回滚 --><tx:method name="update*" propagation="REQUIRED"/><tx:method name="insert*" propagation="REQUIRED"/><tx:method name="*"  propagation="SUPPORTS"/></tx:attributes></tx:advice><!-- 4.3 配置事务的切面 --><aop:config><aop:pointcut id="acut"  expression="execution(* scmweb.log.scmservice.*.*(..))" /><aop:advisor advice-ref="tx" pointcut-ref="acut"/><!-- 这里应该是用pointcut-ref属性  而不是pointcut关联切入点 --></aop:config><!-- 配置mybatis的转换器,目的:通过该配置,可以使得mybatis.xml文件中不必再关联实体映射配置文件(xxxMapper.xml)了,并最终实现了dao层只需要 接口+xxxMapper.xml配置文件原理:对于在basePackage设置的包(包括子包)下的接口类,扫描所有xxxMapper.xml文件,如果某个文件的名称空间是该接口的全名,那么存在与名称空间相同的接口将被转换成spring的BEAN,在调用 的地方通过@Autowired方式将可以注入接口实例,我们在service实现层调用dao接口的方法时,则会自动将接口的全类名当作名称空间,方法名当作sql语句的id值,来执行对应的sql语句,并返回相应结果(因此daoimpl层就没有作用了)结束配置之后 3.2步便可以不再配置了--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 		<property name="sqlSessionFactory" ref="sqlsessionfactory" /> 该配置不用手动配,否则会报错,spring底层会自动注入--><property name="basePackage" value="scmweb.log.scmdao"/></bean></beans>

b.jdbc.property配置文件

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/scm?useUnicode\=true&characterEncoding\=UTF-8
jdbc.username=root
jdbc.password=root

c.mybatis.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><typeAliases><!-- 通过package标签设置实现了将某一个包下的所有的实体类都以简单类名作为别名的设置,这样避免了分别为每一个实体类设置别名的麻烦(配置完成之后,xxxMapper.xml中不用再写全类名了直接写别名即可)--><package name="scmweb.log.domain"/></typeAliases><!-- 这种方式在这里引入 xxxMapper.xml文件比较麻烦,且有多少个映射文件就要引入多少次为了解决这个事情,可以在sqlSessionFactory的配置中,设置扫描放置xxxMapper.xml文件的包这样可以自动扫描包下面的所有实体映射文件-->
<!-- 	<mappers>  -->
<!-- 			<mapper resource="scmweb/log/domain/emploeemapper.xml"/>  -->
<!--  	</mappers> -->
</configuration>

d.springMVC.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.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd "><!-- 设置annotation-driven注解之后,便支持了返回json格式数据到前台页面 --><mvc:annotation-driven/><context:component-scan base-package="scmweb">
<!--       	<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> --><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/></context:component-scan><!-- 映射器 与xml形式的解析器不一样-->
<!--       <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping.class"></bean> --><!-- 适配器 与xml形式的解析器不一样--><bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean><!-- xml版的视图解析器和注解版的视图解析器是一样的 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 由于这里是为了视图通过逻辑地址访问,因此这里视图解析器为必选配置 --><!-- 配置路径前缀 --><property name="prefix" value="/WEB-INF/view/"></property><!-- 配置路径后缀 --><property name="suffix" value=".jsp"></property></bean><!--         当 springMVC配置文件中  通过注解引入了spring的配置文件时,则web.xml文件中便可以不配置spring的xml配置文件了<import resource="classpath:config/application-context.xml"/> 
-->
</beans>

e.web.xml配置文件中需要配置spring和springMVC的相关内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name>	<welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 配置spring --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 当 springMVC配置文件中  通过注解引入了spring的配置文件时,则可以配置spring的xml配置文件-->	<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:config/application-context.xml</param-value></context-param><!-- 配置springMVC --><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:config/springMVC.xml</param-value><!-- 该配置文件一定是包含springMVC所有属性配置得配置文件 --></init-param></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping><filter><filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 配置springMVC结束 --></web-app>

配置到这一步之后,会发现,现在需要手动创建javabean实例、dao层的接口以及javabean对应表格的mapper配置文件,因此,这里用到了一个mybatis逆向工程的插件,用于自动生成上述三个部分

4.配置mybatis的逆向工程插件

a.首先需要在myeclipse的安装目录中添加逆向工程

首先找见安装目录中的MyEclipse 10下创建add-plugins\mybatis-generater文件夹,然后将逆向工程压缩包解压之后的两个文件夹放到改目录下

D:\myprogram1\myeclipse10\MyEclipse 10\add-plugins\mybatis-generater

其次在myeclipse的安装目录D:\myprogram1\myeclipse10\MyEclipse 10\dropins下创建mybatis.link文件(后缀为.link),文件内容为:path=D:\\myprogram1\\myeclipse10\\MyEclipse 10\\add-plugins\\mybatis-generater

重启myecplise,将中generatorConfig.xml添加到项目中

b.generatorConfig.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!-- mybatis的逆向工程插件,用于帮助开发人员自动生成数据库中指定表格所对应的:javabean、xxxMapper.xml文件(javabean与表格的映射文件)和dao层的接口类这样开发人员不用自己去一张一张的建表格对应的各种类和配置文件了。当配置结束之后,右击文件名会有generator Mybatis/Ibatis artifacts选项   点击即可顺利运行执行结果为:数据库中一张表对应:一个javabean,一个dao接口对象,一个xxxMapper.xml文件-->
<generatorConfiguration>
<!--<properties resource="conn.properties" />--><!-- 处理1 --><classPathEntry location="E:\mybatis\mysql-connector-java-5.1.7-bin.jar"/><!-- 指定运行环境是mybatis3的版本 --><context id="testTables" targetRuntime="MyBatis3"><commentGenerator><!-- 是否取消注释 --><property name="suppressAllComments" value="true" /><!-- 是否生成注释代时间戳 --><property name="suppressDate" value="true" /></commentGenerator><!-- 处理2   jdbc 连接信息 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/scm?useUnicode=true&characterEncoding=UTF-8" userId="root" password="root"></jdbcConnection><!--处理3   targetPackage指定模型(即表所对应的实体类)生成在哪个包 ,targetProject指定项目的src目录,-->        <javaModelGenerator targetPackage="scmweb.log.domain"targetProject="SCM/src"><!-- 去除字段前后空格 --><property name="trimStrings" value="false" /></javaModelGenerator><!--处理4   配置xxxMapper.xml文件生成到项目中哪个包中 --><sqlMapGenerator targetPackage="scmweb.log.scmdao"targetProject="SCM/src" /><!-- 处理5   配置dao接口生成信息(由mybatis逆向工程生成的dao接口类全是以Mapper结尾的)--><javaClientGenerator type="XMLMAPPER" targetPackage="scmweb.log.scmdao" targetProject="SCM/src" /><!-- 指定要为数据库中哪些表格生成对应的接口对象和实体类(javabean)以及对应的xxxMapper.xml文件切忌一张表格只能自动生成一次,如果多次生成的话,会造成生成的事物内部属性一直重复--><table tableName="account" domainObjectName="Account"/><table tableName="supplier" domainObjectName="Supplier"/></context>
</generatorConfiguration>

当配置结束之后,右击文件名会有generator Mybatis/Ibatis artifacts选项   点击即可顺利运行

 执行结果为:数据库中一张表对应:一个javabean,一个dao接口对象,一个xxxMapper.xml文件

5.如果项目搭建好了之后POST表单提交的数据出现乱码,可以查看我得另一篇日志SSM框架Jsp页面POST提交的中文数据保存到数据库变成乱码问题的分析

6.项目源码地址:https://gitee.com/willbeahero/ssmproject



http://chatgpt.dhexx.cn/article/lFPpEEiH.shtml

相关文章

SSM框架实例--信息管理系统

SSM框架是目前比较流行的javaweb框架&#xff0c;很多小伙伴也都在学习&#xff0c;这里给大家带来一个简单的数据库增删改查的小实例—信息管理系统 1.首先我们创建数据库 2.在jdbc.properties里配置数据库信息 3.创建User这个实体类&#xff0c;与sql表做映射 4.在dao层…

SSM项目完整源码

〇. 项目源码 https://gitee.com/ZXAcademy/First-PaperSystem-SSM 相比较于此文&#xff0c;如上项目源码做了如下修改&#xff1a; 新增数据库脚本&#xff08;database目录下&#xff09;调整数据库列名&#xff08;PaperMapper.xml中&#xff09;修改了一处BUG&#xff…

SSM 框架整合案例

项目简介 使用 SSM 框架搭建出一套简单的 CRUD 项目示例&#xff0c;主要涉及两张表&#xff1a;员工表和部门表&#xff0c;其中每个员工都对应一个部门。 主要实现的功能 1、分页查询所有员工信息并展示列表。 2、添加一条员工的信息。 3、新增数据需要校验&#xff1a; jQue…

JavaEE_SSM框架_SSM项目案例

SSM项目之【千里之行&#xff0c;始于足下】 创建由【SSM】框架搭建的JavaWeb项目的步骤如下&#xff1a; Ⅰ、创建动态Web项目 Ⅱ、拷贝SSM项目所需的jar包 将前期【SSM项目】所需的【32】个jar包拷贝到【WebContent】——【WEB-INF】——【lib】目录下 …

SSM框架整合完整案例

SSM框架整合 一、整合思路二、案例实战1. 项目前期准备2. 整合dao层① mybatis全局配置文件(SqlConfig.xml)② 配置spring.xml③ 编写POJO类(java bean)④ 编写ItemsMapper.xml⑤ 编写ItemsMapper.java接口⑥ 测试dao层 3. 整合service层(使用注解)4. 整合spring mvc① 编写Con…

简单易懂:SSM入门级项目整合实例教程+附项目源码

欢迎关注点赞评论&#xff0c;共同学习&#xff0c;共同进步&#xff01; 你的点赞、关注、评论、是我创作的动力&#xff01; -------希望我的文章对你有所帮助-------- 目录 一、前言 二、推荐开发及运行环境 三、项目基本结构 四、创建一个普通JAVAEE-WEB项目 五、搭建…

Maven+SSM框架项目实例

一、项目环境 开发系统&#xff1a;Window10开发工具&#xff1a;IDEAJDK&#xff1a;1.8框架&#xff1a;MavenSpringSpringMVCMybatis数据库&#xff1a;Mysql 二、项目结构 项目文件架构&#xff1a; 三、Maven配置 pom.xml&#xff1a; <properties><!-- s…

SSM框架整合详细案例

目录描述 一、创建web项目(使用idea maven)二、使用maven添加依赖1、在pom.xml中添加项目所需的所有依赖2、添加tomcat运行驱动 三、建立整体项目架构四、搭建mybatis1、编写mybatis-config.xml2、编写数据库连接配置文件3、编写spring-mybatis.xml4、编写pojo和dao层5、编写映…

SSM框架详细实例讲解

SSM框架简介 SSM框架&#xff0c;是Spring Spring MVC MyBatis的缩写&#xff0c;这个是继SSH之后&#xff0c;目前比较主流的Java EE企业级框架&#xff0c;适用于搭建各种大型的企业级应用系统。 我们先大概的回顾一下吧。1.Spring简介 Spring是一个开源框架&…

SSM框架搭建实例

SSM框架搭建简单实例 - 搭建步骤 需求分析&#xff1a; 实现用户表信息的增删改查 1. 开发环境 环境 &#xff1a; JDK 1.8 软件 &#xff1a; myeclipse 数据库 &#xff1a; MySql 2. 创建数据库 数据库名称&#xff1a;ssm 字符集&#xff1a;…

java ssm框架项目_3个SSM框架应用实例教程

SSM框架简介 SSM(SpringSpringMVCMyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成&#xff0c;常作为数据源较简单的web项目的框架。 文章主要介绍3个SSM框架应用的实例教程&#xff0c;非常适合想学习应用该整合框架的小伙伴。 该项目假设为开发一个简单的用…

SSM框架整合实例

1.数据准备 创建一个数据库并取名为ssm&#xff0c;在数据库ssm下创建user表&#xff1b;对应的sql脚本如下&#xff0c;这里我们直接使用navicat工具更方便。 create database ssm;use ssm; create table user(id int primary key auto_increment,username varchar(20),pass…

SSM框架整合+简单案例实现

SSM框架整合简单案例实现 文章目录 前言一、SpringSpringMVCMybatis框架整合1.建立一个新的web项目2.所需jar包3.建立数据库表与实体类之间的映射4.web.xml5.数据库信息db.properties6.Spring与Mybatis的整合7.SpringMVC基本配置 二、整合测试1.结构展示2.studentMapper.xml3.s…

ssm框架的简单案例

学完ssm框架后做了一个简单的案例&#xff0c;实现简单的增删改查。 项目结构图&#xff1a; 看项目结构&#xff1a; 关键代码&#xff1a; 前端是jsp技术&#xff0c;当然也可以用vue分离的自己选择就好。 订单页面&#xff1a; <% page language"java&quo…

SSM框架开发-基础案例

SSM框架整合基础案例详解 1.数据库环境 创建一个存放书籍数据的数据库表 CREATE DATABASE ssmbuild;USE ssmbuild;DROP TABLE IF EXISTS books;CREATE TABLE books (bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT 书id,bookName VARCHAR(100) NOT NULL COMMENT 书名,bookCou…

SSM框架简单实例

1、SSM框架 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成&#xff0c;常作为数据源较简单的web项目的框架。 2、简单实例 &#xff08;1&#xff09;项目结构 &#xff08;2&#xff09;PageBean.java packa…

用SSM实现简单实例

SSM的简例实现 这是项目完整代码的链接地址 [https://download.csdn.net/download/m0_46308149/12961224]源码地址 SSM介绍 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架集由Spring、MyBatis两个开源框架整合而成&#xff08;SpringMVC是Spring中的部分内容&am…

SpringMVC笔记——SSM框架搭建简单实例

简介 SpringSpringMVCMyBatis框架&#xff08;SSM&#xff09;是比较热门的中小型企业级项目开发的框架&#xff0c;对于新手来说也是比较容易学习入门的。虽说容易&#xff0c;但在框架搭建过程中仍然遇到了许多问题&#xff0c;因此用实例记录下来吧。 实例 第一步——导包 S…

SSM框架整合+案例

SSM框架整合 1、环境要求2、数据库环境3、基本环境搭建3.1 创建项目3.2 Maven项目添加web支持3.3 配置pom.xml文件3.4 建立框架的基本结构和配置文件3.4.1 创建包3.4.2 添加配置文件3.4.3 database.properties文件3.4.4 mybatis-config.xml 文件3.4.5 applicationContext.xml 文…

C# SqlHelper类的使用

SqlHelper类 1.首先SqlHelper类是一个基于.NET Framework的数据库操作组件&#xff0c;包含了数据库的操作方法。可以简化在C#中使用ADO.NET连接数据库时每次都要编写连接、打开、执行SQL语句的代码&#xff0c;它将每次连接都要写的代码封装成方法&#xff0c;把要执行的SQL语…