SSM框架整合完整案例

article/2025/9/18 23:36:32

SSM框架整合

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

这篇文章用SSM框架整合来完成一个全查商品表(items),并将所有的商品信息展示到页面(showitems.jsp)中这样的功能,让大家快速熟练使用SSM框架。

一、整合思路

因为spring框架功能强大,涉及到整个web分层,所以这次的整合以spring框架为基础,mybatis负责dao层,spring mvc 负责controller层
最终项目文件结构如下图:
在这里插入图片描述

二、案例实战

1. 项目前期准备

新建web工程,导入SSM框架项目需要的jar包。另外需要在数据库(我这边使用mysql数据库)创建items表,添加数据,数据库表如下图:
在这里插入图片描述

2. 整合dao层

① mybatis全局配置文件(SqlConfig.xml)

<configuration><settings><setting name="logImpl" value="LOG4J"/></settings><typeAliases><!-- 给vo包中的所有java bean起别名,别名就是类名 --><package name="com.byzx.ssm.vo"/></typeAliases><!-- 数据源的配置交给spring --><!-- 关联映射文件交给sping的mapper扫描器 -->
</configuration>

log4j.properties:

# Global logging configuration
# developer-->DEBUG product-->INFO or ERROR
log4j.rootLogger=DEBUG, stdout
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

② 配置spring.xml

	<!-- 扫描service包,让service的注解起作用 --><context:component-scan base-package="com.byzx.ssm.service"></context:component-scan><!-- 加载db.properties --><context:property-placeholder location="classpath:db.properties" /><!-- 配置c3p0数据源 --><bean id="c3p0ds" 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><property name="maxPoolSize" value="30"></property><property name="initialPoolSize" value="5"></property></bean><!-- 配置SqlSessionFactory --><bean id="ssf" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="c3p0ds"></property><property name="configLocation" value="classpath:SqlConfig.xml"></property></bean><!-- mapper扫描器 --><!-- 会自动生成一个标识为mapper接口类型首字母小写的bean --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.byzx.ssm.dao"></property><property name="sqlSessionFactoryBeanName" value="ssf"></property></bean>

db.properties:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456

③ 编写POJO类(java bean)

public class Items {private int id;private String name;private double price;private String detail;private Date createtime;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getDetail() {return detail;}public void setDetail(String detail) {this.detail = detail;}public Date getCreatetime() {return createtime;}public void setCreatetime(Date createtime) {this.createtime = createtime;}@Overridepublic String toString() {return "Items [id=" + id + ", name=" + name + ", price=" + price+ ", detail=" + detail + ", createtime=" + createtime + "]";}
}

④ 编写ItemsMapper.xml

<mapper namespace="com.byzx.ssm.dao.ItemsMapper"><!-- 全查商品表 items --><select id="findAllItem" resultType="Items">select * from items</select>
</mapper>

⑤ 编写ItemsMapper.java接口

public interface ItemsMapper {// 全查商品表public List<Items> findAllItem();
}

⑥ 测试dao层

public static void main(String[] args) {ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");ItemsMapper itemsMapper = (ItemsMapper)ac.getBean("itemsMapper");List<Items> items = itemsMapper.findAllItem();for(Items item: items){System.out.println(item);}}

执行结果:
在这里插入图片描述

出现上述结果,说明整个dao层已经写好,接下来到service层

3. 整合service层(使用注解)

ItemsService类:

@Service // 相当于配置了一个标识符为ItemsService类型首字母小写的bean
public class ItemsService {// mapper扫描器会自动生成一个标识符为itemsMapper的bean// 注解@Autowired 可以将生成的bean赋值给全局变量itemsMapper@Autowiredprivate ItemsMapper itemsMapper;// 全查items表public List<Items> findAllItem(){return itemsMapper.findAllItem();}
}

4. 整合spring mvc

① 编写Controller

@Controller
public class ItemsController{@Autowiredprivate ItemsService itemsService;@RequestMapping("/queryItems1.action")public ModelAndView queryItems1(){ // 方法名可以任意List<Items> items = itemsService.findAllItem();ModelAndView mav = new ModelAndView();// 添加数据mav.addObject("ITEMS", items);// 设置jsp页面路径mav.setViewName("jsp/showitems.jsp");return mav;}
}

② 编写springmvc.xml

<!-- 自动扫描bean --><context:component-scan base-package="com.byzx.ssm.controller"></context:component-scan><!-- 注解驱动 --><mvc:annotation-driven></mvc:annotation-driven> <!-- 配置视图解析器 ViewResolver --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>

③ 写jsp页面(jsp/showitems.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html >
<html>
<head>
<meta charset="UTF-8">
<title>查询商品列表</title>
</head>
<body><form action="${pageContext.request.contextPath }/queryItems1.action"method="post">查询条件:<table width="100%" border=1><tr><td><input type="submit" value="查询" /></td></tr></table>商品列表:<table width="100%" border=1><tr><td>商品名称</td><td>商品价格</td><td>生产日期</td><td>商品描述</td><td>操作</td></tr><c:forEach items="${ITEMS }" var="item"><tr><td>${item.name }</td><td>${item.price }</td><td><fmt:formatDate value="${item.createtime}"pattern="yyyy-MM-dd HH:mm:ss" /></td><td>${item.detail }</td><td><ahref="${pageContext.request.contextPath }/item/editItem.action?id=${item.id}">修改</a></td></tr></c:forEach></table></form>
</body>
</html>

④ 写web.xml

<!-- 配置前端控制器 DispatcherServlet --><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.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping><!-- 加载spring容器 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></context-param><listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> 

整个配置完成,进行最终的测试:
运行项目,在showitems.jsp页面点击查询显示数据库表中的所有商品信息
http://localhost:8080/ssm/jsp/showitems.jsp
在这里插入图片描述


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

相关文章

简单易懂: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语…

SqlHelper类(C#)

大神可以绕道了... 目的&#xff1a;搜集SqlHelper类 自己写的一个SQLHelper类&#xff0c;如下&#xff1a; 编辑App.config节点&#xff0c;添加<connectionStrings>节点&#xff0c;并根据实际填上相应的参数 <?xml version"1.0" encoding"utf…

SQLHelper

前言 小编在最近的学习过程中用到了SQLHelper&#xff0c;说起来&#xff0c;小编也是有点懒&#xff0c;虽然是用到了&#xff0c;但是也没有用明白&#xff0c;开始的时候也没有好好的研究&#xff0c;直到后来报错了&#xff0c;才下定决心好好好学习了解一下这个东西。下面…

sqlhelper 的使用 (C#)超级详细的入门教程

sql helper 的使用 &#xff08;C#&#xff09;小白教程 提到CRUD&#xff0c;很多刚入门的小白总是来一条写一条连接&#xff0c;先建立连接connection 打开连接 open 来查询query 最后别忘了关闭连接 close 。 要是一次写多个操作&#xff0c;那一遍一遍写下来肯定麻木了。…

Python中的BIF

什么是BIF呢&#xff1f; BIF是built-in functions的缩写&#xff0c;顾名思义&#xff0c;就是内建函数。Python中提供了大量的BIF&#xff0c;这就意味着代码量可以大大减少。 如果要查看Python中的内建函数&#xff0c;就可以使用命令&#xff1a;dir(__builtins__) 注意…

一、bif

缩进是python的灵魂&#xff0c;缩进可以使python的代码整洁&#xff0c;有层次。 python是脚本语言&#xff0c;就是为了简单方便以辅助科学运算&#xff0c;因此python有许多bif&#xff0c;build in function 全部都是小写的就是bif。 转义字符是一个字符&#xff0c;在内存…