SSM框架整合(Spring+SpringMVC+Mybatis)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: SSM框架整合超详细文件版,面向小白搭建,保姆级别,(Spring+SpringMVC+Mybatis)。

1、创建数据库

image.png

2、创建表

image-20220807091756884.png

3、创建maven工程

导入坐标

<dependencies><!--spring相关--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.7</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.5.RELEASE</version></dependency><!--servlet和jsp--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version></dependency><!--mybatis相关--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency></dependencies>

4、编写实体类

package com.xmp.domain;

public class Account {

   private Integer id;

   private String name;

   private Double money;

   public Integer getId() {

       return id;

   }

   public void setId(Integer id) {

       this.id = id;

   }

   public String getName() {

       return name;

   }

   public void setName(String name) {

       this.name = name;

   }

   public Double getMoney() {

       return money;

   }

   public void setMoney(Double money) {

       this.money = money;

   }

}

5、编写Mapper接口

packagecom.xmp.mapper;
importcom.xmp.domain.Account;
importjava.util.List;
publicinterfaceAccountMapper {
publicvoidsave(Accountaccount);
publicList<Account>findAll();
}

6、编写Service接口

packagecom.xmp.service;
importcom.xmp.domain.Account;
importjava.util.List;
publicinterfaceAccountService {
publicvoidsave(Accountaccount);
publicList<Account>findAll();
}

7、编写Service接口实现

package com.xmp.service.impl;

import com.xmp.domain.Account;

import com.xmp.mapper.AccountMapper;

import com.xmp.service.AccountService;

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

import org.springframework.stereotype.Service;

import java.util.List;

@Service("accountService")

public class AccountServiceImpl implements AccountService {

   @Autowired

   private AccountMapper accountMapper;

   @Override

   public void save(Account account) {

       accountMapper.save(account);

   }

   @Override

   public List<Account> findAll() {

       return accountMapper.findAll();

   }

}

8、编写Controller

packagecom.xmp.controller;
importcom.xmp.domain.Account;
importcom.xmp.service.AccountService;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Controller;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.ResponseBody;
importorg.springframework.web.servlet.ModelAndView;
importjava.util.List;
@Controller@RequestMapping("/account")
publicclassAccountController {
@AutowiredprivateAccountServiceaccountService;
//保存@RequestMapping(value="/save",produces="text/html;charset=UTF-8")
@ResponseBodypublicStringsave(Accountaccount){
accountService.save(account);
return"保存成功";
    }
//查询@RequestMapping("/findAll")
publicModelAndViewfindAll(){
List<Account>accountList=accountService.findAll();
ModelAndViewmodelAndView=newModelAndView();
modelAndView.addObject("accountList",accountList);
modelAndView.setViewName("accountList");
returnmodelAndView;
    }
}

9、编写添加页面

<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Title</title></head><body><h1>添加账户信息表单</h1><formname="accountForm"action="${pageContext.request.contextPath}/account/save"method="post">账户名称:<inputtype="text"name="name"><br>账户金额:<inputtype="text"name="money"><br><inputtype="submit"value="保存"><br></form></body></html>

10、编写列表页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>

<head>

   <title>Title</title>

</head>

<body>

   <h1>展示账户数据列表</h1>

   <table border="1">

       <tr>

           <th>账户id</th>

           <th>账户名称</th>

           <th>账户金额</th>

       </tr>

       <c:forEach items="${accountList}" var="account">

           <tr>

               <td>${account.id}</td>

               <td>${account.name}</td>

               <td>${account.money}</td>

           </tr>

       </c:forEach>

   </table>

</body>

</html>

11、编写相应配置文件

  • Spring配置文件:applicationContext.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd">

   <!--组件扫描 扫描service和mapper-->

   <context:component-scan base-package="com.xmp">

       <!--排除controller的扫描-->

       <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter>

   </context:component-scan>


   <!--加载propeties文件-->

   <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>


   <!--配置数据源信息-->

   <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

       <property name="driverClass" value="${jdbc.driver}"></property>

       <property name="jdbcUrl" value="${jdbc.url}"></property>

       <property name="user" value="${jdbc.username}"></property>

       <property name="password" value="${jdbc.password}"></property>

   </bean>


   <!--配置sessionFactory-->

   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

       <property name="dataSource" ref="dataSource"></property>

       <!--加载mybatis核心文件-->

       <property name="configLocation" value="classpath:sqlMapConfig-spring.xml"></property>

   </bean>


   <!--扫描mapper所在的包 为mapper创建实现类-->

   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

       <property name="basePackage" value="com.xmp.mapper"></property>

   </bean>



   <!--声明式事务控制-->

   <!--平台事务管理器-->

   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

       <property name="dataSource" ref="dataSource"></property>

   </bean>


   <!--配置事务增强-->

   <tx:advice id="txAdvice">

       <tx:attributes>

           <tx:method name="*"/>

       </tx:attributes>

   </tx:advice>


   <!--事务的aop织入-->

   <aop:config>

       <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.xmp.service.impl.*.*(..))"></aop:advisor>

   </aop:config>


</beans>

  • SprngMVC配置文件:spring-mvc.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--组件扫描主要扫描controller--><context:component-scanbase-package="com.xmp.controller"></context:component-scan><!--配置mvc注解驱动--><mvc:annotation-driven></mvc:annotation-driven><!--内部资源视图解析器--><beanid="resourceViewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/pages/"></property><propertyname="suffix"value=".jsp"></property></bean><!--开发静态资源访问权限--><mvc:default-servlet-handler></mvc:default-servlet-handler></beans>
  • MyBatis映射文件:AccountMapper.xml
<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.xmp.mapper.AccountMapper"><insertid="save"parameterType="account">insertintoaccountvalues(#{id},#{name},#{money})
</insert><selectid="findAll"resultType="account">select*fromaccount</select></mapper>MyBatis核心文件:sqlMapConfig-spring.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--定义别名--><typeAliases><!--<typeAliastype="com.xmp.domain.Account"alias="account"></typeAlias>--><packagename="com.xmp.domain"></package></typeAliases></configuration>
  • 数据库连接信息文件:jdbc.properties
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssmjdbc.username=rootjdbc.passwords=root
  • Web.xml文件:web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xmlns="http://java.sun.com/xml/ns/javaee"

        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">


   <!--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的前端控制器-->

   <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:spring-mvc.xml</param-value>

       </init-param>

       <load-on-startup>1</load-on-startup>

   </servlet>

   <servlet-mapping>

       <servlet-name>DispatcherServlet</servlet-name>

       <url-pattern>/</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>


</web-app>


  • 日志文件:log4j.xml

#

# Hibernate, Relational Persistence for Idiomatic Java

#

# License: GNU Lesser General Public License (LGPL), version 2.1 or later.

# See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.

#


### direct log messages to stdout ###

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.err

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n


### direct messages to file hibernate.log ###

#log4j.appender.file=org.apache.log4j.FileAppender

#log4j.appender.file.File=hibernate.log

#log4j.appender.file.layout=org.apache.log4j.PatternLayout

#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n


### set log levels - for more verbose logging change 'info' to 'debug' ###


log4j.rootLogger=all, stdout


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
18天前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
107 29
|
3月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
持久层框架MyBatisPlus
75 1
持久层框架MyBatisPlus
|
4月前
|
缓存 Cloud Native 安全
探索阿里巴巴新型ORM框架:超越MybatisPlus?
【10月更文挑战第9天】在Java开发领域,Mybatis及其增强工具MybatisPlus长期占据着ORM(对象关系映射)技术的主导地位。然而,随着技术的发展,阿里巴巴集团推出了一种新型ORM框架,旨在提供更高效、更简洁的开发体验。本文将对这一新型ORM框架进行探索,分析其特性,并与MybatisPlus进行比较。
163 0
|
6月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
6月前
|
SQL Java 数据库连接
【Java 第十三篇章】MyBatis 框架介绍
MyBatis 原名 iBATIS,2001 年由 Clinton Begin 创建,以其简易灵活著称。2010 年更名以重塑品牌形象。MyBatis 通过 SQL 映射文件将 SQL 语句与 Java 代码分离,支持编写原生 SQL 并与方法映射。具备对象关系映射功能,简化数据库记录处理。支持动态 SQL 构建,灵活应对不同查询条件。内置缓存机制,提升查询效率。相比全功能 ORM,MyBatis 提供更高 SQL 控制度和更好的维护性,并易于与 Spring 等框架集成,广泛应用于 Java 数据访问层。
58 0
|
6月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
482 0
|
6月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
85 0
|
9月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
245 0
|
9月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
97 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
186 0

热门文章

最新文章