首页 > 其他分享 >SpringBoot2.x系列教程19--Web开发05之XML方式实现SSM整合

SpringBoot2.x系列教程19--Web开发05之XML方式实现SSM整合

时间:2022-12-23 15:03:07浏览次数:48  
标签:XML Web 05 boot yyg org import com id


SpringBoot系列教程19--Web开发05之XML方式实现SSM整合

作者:一一哥

注意:

本系列教程案例继续在之前的基础上进行编写!

Spring Boot可以帮助我们快速搭建一个SSM框架环境,那么该怎么具体实现SSM整合呢?

以下给大家介绍在SpringBoot项目中进行SSM整合的两种方式:

  • 1️⃣. XML方式;
  • 2️⃣. 注解两种方式.

一. 在SpringBoot中以XML方式进行SSM整合

1. 创建一个新的module--demo08

SpringBoot2.x系列教程19--Web开发05之XML方式实现SSM整合_spring

2.将项目改造成Spring Boot项目

在项目中添加父依赖以及编译插件。

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

3. 在pom文件中添加相关依赖

<dependencies>
<!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>

<!--
spring-boot mybatis依赖:
请不要使用1.0.0版本,因为还不支持拦截器插件.
-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>

<!--mybatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>

<!--简化bean代码-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>

4.在该pom.xml文件中添加识别xml文件的配置

<build>
<!--注意:配置xml资源属性,允许java包下的xml文件可编译-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>

5. 配置application.properties

我们可以创建出一个application.properties文件,然后主要是设置数据源和mybaits属性。

#数据源配置
spring.datasource.username=root
spring.datasource.password=syc
spring.datasource.url=jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#mybatis配置
mybatis.type-aliases-package=com.yyg.boot.domain
mybatis.mapper-locations=classpath:com/yyg/boot/domain/*.xml

6. 创建数据库以及student表

#数据库脚本
CREATE TABLE student (id INTEGER(20) PRIMARY KEY AUTO_INCREMENT NOT NULL,NAME VARCHAR(30),sex VARCHAR(4));

#添加数据语句
INSERT INTO student (NAME,sex) VALUES('三胖','男');
INSERT INTO student (NAME,sex) VALUES('特没谱','女');

7. 创建pojo实体对象

创建出“com.yyg.boot.domain”包,在该包下面创建一个Student实体类!

package com.syc.boot.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student {

private Integer id;

private String name;

private String sex;

}

8.编写StudentMapper接口类

创建一个“com.yyg.boot.mapper”包,在该包下面创建出StudentMapper接口。

package com.yyg.boot.mapper;

import com.yyg.boot.domain.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StudentMapper {

List<Student> getAll();

Student getById(@Param("id") int id);
}

9.编写对应的StudentMapper.xml文件

我们编写一个StudentMapper.xml文件,存放在“com.yyg.boot.mapper”包里面。

SpringBoot2.x系列教程19--Web开发05之XML方式实现SSM整合_spring_02

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yyg.boot.mapper.StudentMapper">

<select id="getAll" resultType="com.yyg.boot.domain.Student">
SELECT * FROM student
</select>

<select id="getById" resultType="com.yyg.boot.domain.Student">
SELECT * FROM student
where id=#{id}
</select>

</mapper>

10.编写service及其实现类

创建一个“com.yyg.boot.service”的包及其子包“impl”。

10.1 StudentService接口

在service包下面创建StudentService接口。

package com.yyg.boot.service;

import com.yyg.boot.domain.Student;

import java.util.List;

public interface StudentService {

/**
* 分页参数
*/
List<Student> getAll(Integer pageNum, Integer pageSize);

Student get(Integer id);

}

10.2 StudentServiceImpl实现类

在impl包下面,创建StudentServiceImpl实现类。

package com.yyg.boot.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yyg.boot.domain.Student;
import com.yyg.boot.mapper.StudentMapper;
import com.yyg.boot.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class StudentServiceImpl implements StudentService {

@Autowired
private StudentMapper studentMapper;

@Override
public List<Student> getAll(Integer pageNum, Integer pageSize) {
//在查询之前设置分页,利用Mybatis的分页插件实现分页
PageHelper.startPage(pageNum, pageSize);

List<Student> list = studentMapper.getAll();
PageInfo<Student> info = new PageInfo<>(list);
return info.getList();
}

@Override
public Student get(Integer id) {
return studentMapper.getById(id);
}

}

11.编写Controller类

创建出一个“com.yyg.boot.web”的包,在该包下面创建一个Controller类。

package com.syc.boot.web;
import com.syc.boot.domain.Student;
import com.syc.boot.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
@RequestMapping("/stu")
public class StudentController {

@Autowired
private StudentService studentService;

@RequestMapping(value = "/find", method = RequestMethod.GET)
public List<Student> find(@RequestParam(name = "pageNum",required = false,defaultValue = "1") Integer pageNum,@RequestParam(name="pageSize" ,required = false,defaultValue = "20") Integer pageSize) {
return studentService.getAll(pageNum,pageSize);
}

@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Student get(@PathVariable(name = "id") Integer id) {
return studentService.get(id);
}
}

12. 编写程序入口

在“com.yyg.boot”包的根目录下,创建程序员入口类!

package com.yyg.boot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
* 以XML方式整合SSM.
* MapperScan:扫描Mybatis接口文件
*/
@MapperScan("com.yyg.boot.mapper")
@SpringBootApplication
public class SSMApplication {

public static void main(String[] args) {
SpringApplication.run(SSMApplication.class, args);
}

}

注意:在应用程序入口类上配置@MapperScan扫描mapper接口文件所在包!

整个项目目录结构

SpringBoot2.x系列教程19--Web开发05之XML方式实现SSM整合_spring_03

13.测试ssm整合及分页效果

启动项目,进行测试。

13.1 不分页查询全部

SpringBoot2.x系列教程19--Web开发05之XML方式实现SSM整合_List_04

13.2 根据id查询某个对象

SpringBoot2.x系列教程19--Web开发05之XML方式实现SSM整合_java_05

13.3 分页查询

SpringBoot2.x系列教程19--Web开发05之XML方式实现SSM整合_java_06

标签:XML,Web,05,boot,yyg,org,import,com,id
From: https://blog.51cto.com/u_7044146/5965741

相关文章

  • SpringBoot2.x系列教程18--Web开发04之实现文件上传
    SpringBoot系列教程18--Web开发04之实现文件上传作者:一一哥一.概述文件上传是开发中比较常见的功能之一.但是SpringBoot并没有提供特别的文件上传技术,而是依赖于SpringMVC......
  • SpringBoot2.x系列教程17--Web开发03之支持jsp
    SpringBoot系列教程17--Web开发03之支持jsp作者:一一哥咱们都知道,在SpringMVC中是支持JSP的,但是在SpringBoot中,其实不建议使用JSP。因为在使用嵌入式servlet容器时,有一些......
  • SpringBoot2.x系列教程16--Web开发02之静态资源配置
    SpringBoot系列教程16--Web开发02之静态资源配置作者:一一哥在上一章节中,我们讲解了如何在SpringBoot项目中使用Thymeleaf模板,接下来我们在上一节的案例demo05中讲解如何使......
  • SpringBoot2.x系列教程05--新纪元之SpringBoot初使用
    SpringBoot系列教程05--新纪元之SpringBoot初使用作者:一一哥一.SpringInitializr方式创建1.新建项目2.选择SpringInitializr3.设置项目的包名及坐标GAV信息4.设......
  • 05_Java筑基之Java开发初体验
    05_Java筑基之Java开发初体验一.编写第一个HelloWorld程序1.Java开发步骤Java开发需要三个步骤:也就是会经历如下顺序:2.第一步:编写源程序......
  • 使用 Spring 创建和提交 Web 表单的过程
    本指南将引导您完成使用Spring创建和提交Web表单的过程。您将构建什么在本指南中,您将构建一个Web表单,可通过以下URL访问该表单:​​http://localhost:8080/greeting......
  • 高性能web服务器nginx和反向代理
    高性能web服务器——nginx一、 简介1. nginx是什么?l 是一个使用c语言开发的高性能的http服务器和反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。l 是俄罗斯的程序设......
  • webpack 构建脚手架
    前言1.构建项目2.局部安装3.webpack.config.js4.打包css文件5.打包less文件6.打包vue文件7.loader和plugin区别8.添加版权的插件9.html-webpack-plugin......
  • 2005年的10月2日
      放假了,应该好好轻松一下了,与LP订了到青岛、烟台等地的旅游团,晚上出发,白天处理一些事情,准备一下。一旦有时间,还免不了备备课,把自动化测试工具好好看看,象MI的LD、WR、......
  • 2005年的10月9日_manok_新浪博客
    昨天就开始上班了,忙碌了一天,写教案和出考试题目,题目出好了,教案还没有写完,今天主要是写教案了,争取把教案写完。后面的课程不是太多了,有了更多的时间,自己写点东西了。原来......