SpringBoot整合SSM项目

1.1.1     
系统架构图

1.1.2     
创建数据库表

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; text-indent: 21.0pt; font-size: 10.5pt; font-family: Consolas }
h1 { margin-top: 17.0pt; margin-right: 0cm; margin-bottom: 16.5pt; margin-left: 42.6pt; text-align: justify; text-indent: 0cm; line-height: 200%; page-break-after: avoid; font-size: 22.0pt; font-family: Consolas }
h2 { margin-top: 13.0pt; margin-right: 0cm; margin-bottom: 13.0pt; margin-left: 49.8pt; text-align: justify; text-indent: 0cm; line-height: 150%; page-break-after: avoid; font-size: 14.0pt; font-family: "Franklin Gothic Medium" }
h3 { margin-top: 13.0pt; margin-right: 0cm; margin-bottom: 13.0pt; margin-left: 21.0pt; text-align: justify; text-indent: 0cm; line-height: 172%; page-break-after: avoid; font-size: 10.5pt; font-family: Consolas }
h4 { margin-top: 14.0pt; margin-right: 0cm; margin-bottom: 14.5pt; margin-left: 43.2pt; text-align: justify; text-indent: 0cm; line-height: 156%; page-break-after: avoid; font-size: 14.0pt; font-family: "Franklin Gothic Medium" }
h5 { margin-top: 14.0pt; margin-right: 0cm; margin-bottom: 14.5pt; margin-left: 50.4pt; text-align: justify; text-indent: 0cm; line-height: 156%; page-break-after: avoid; font-size: 14.0pt; font-family: Consolas }
h6 { margin-top: 12.0pt; margin-right: 0cm; margin-bottom: 3.2pt; margin-left: 78.6pt; text-align: justify; text-indent: 0cm; line-height: 133%; page-break-after: avoid; font-size: 12.0pt; font-family: "Franklin Gothic Medium" }
p.MsoHeading7,li.MsoHeading7,div.MsoHeading7 { margin-top: 12.0pt; margin-right: 0cm; margin-bottom: 3.2pt; margin-left: 85.8pt; text-align: justify; text-indent: 0cm; line-height: 133%; page-break-after: avoid; font-size: 12.0pt; font-family: Consolas; font-weight: bold }
p.MsoHeading8,li.MsoHeading8,div.MsoHeading8 { margin-top: 12.0pt; margin-right: 0cm; margin-bottom: 3.2pt; margin-left: 93.0pt; text-align: justify; text-indent: 0cm; line-height: 133%; page-break-after: avoid; font-size: 12.0pt; font-family: "Franklin Gothic Medium" }
p.MsoHeading9,li.MsoHeading9,div.MsoHeading9 { margin-top: 12.0pt; margin-right: 0cm; margin-bottom: 3.2pt; margin-left: 100.2pt; text-align: justify; text-indent: 0cm; line-height: 133%; page-break-after: avoid; font-size: 10.5pt; font-family: "Franklin Gothic Medium" }
span.1
{ font-family: Consolas; font-weight: bold }
span.2
{ font-family: "Franklin Gothic Medium"; font-weight: bold }
span.3
{ font-family: Consolas; font-weight: bold }
span.4
{ font-family: "Franklin Gothic Medium"; font-weight: bold }
span.5
{ font-family: Consolas; font-weight: bold }
span.6
{ font-family: "Franklin Gothic Medium"; font-weight: bold }
span.7
{ font-family: Consolas; font-weight: bold }
span.8
{ font-family: "Franklin Gothic Medium" }
span.9
{ font-family: "Franklin Gothic Medium" }
p.a,li.a,div.a { margin: 0cm; margin-bottom: .0001pt; text-indent: 21.0pt; background: #D9D9D9; font-size: 10.5pt; font-family: Consolas }
p.a0,li.a0,div.a0 { margin: 0cm; margin-bottom: .0001pt; text-align: center; text-indent: 21.0pt; font-size: 9.0pt; font-family: Consolas; color: #464646 }
span.Char { font-family: Consolas; background: #D9D9D9 }
span.Char0 { font-family: Consolas; color: #464646 }
.MsoChpDefault { font-size: 10.0pt }
div.WordSection1 { }
ol { margin-bottom: 0cm }
ul { margin-bottom: 0cm }

创建mybatisdb数据库,设置utf8字符集。

创建user表:

DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (  `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘用户id‘,  `user_name` varchar(100) COLLATE utf8mb4_bin NOT NULL DEFAULT ‘‘ COMMENT ‘用户名‘,  `birthday` bigint(20) NOT NULL DEFAULT ‘0‘ COMMENT ‘生日‘,  `address` varchar(200) COLLATE utf8mb4_bin NOT NULL DEFAULT ‘‘ COMMENT ‘住址‘,  `create_time` bigint(20) NOT NULL DEFAULT ‘0‘ COMMENT ‘创建时间‘,  `update_time` bigint(20) NOT NULL DEFAULT ‘0‘ COMMENT ‘更新时间‘,  `create_by` varchar(64) COLLATE utf8mb4_bin NOT NULL DEFAULT ‘‘ COMMENT ‘创建者ID或名称‘,  `update_by` varchar(64) COLLATE utf8mb4_bin NOT NULL DEFAULT ‘‘ COMMENT ‘更新者ID或名称‘,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT=‘商品品牌‘;

insert  into `user`(`user_name`,`birthday`,`address`,`create_time`,`create_by`) values(‘张三‘,1546393586074,‘桂州村‘, 1546393586074, ‘admin‘),(‘李四‘,1546393586074,‘王府井‘, 1546393586074, ‘admin‘);

1.1.3     创建SpringBoot工程,创建simple project,类型为jar

1.1.4     
pom.xml

额外需要的jar,还得自己依赖,例如:mysql驱动包,阿里的数据源druid包

pasting

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.1.2.RELEASE</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <groupId>com.example</groupId>    <artifactId>demo</artifactId>    <version>0.0.1-SNAPSHOT</version>    <name>demo</name>    <description>Spring Boot整合SSM</description>

<properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>        <java.version>1.8</java.version>        <mybatis-plus.version>2.1.9</mybatis-plus.version>        <druid.version>1.1.5</druid.version>    </properties>

<dependencies>        <dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>1.3.2</version>        </dependency>        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <optional>true</optional>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <!--数据库连接为mysql -->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <scope>runtime</scope>        </dependency>        <!--durid数据库连接池 -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>${druid.version}</version>        </dependency>    </dependencies>

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

</project>

1.1.5      User.java

package com.example.demo.entity;

import lombok.Data;

import java.io.Serializable;

@Datapublic class User implements Serializable {    private static final long serialVersionUID = 1L;

private Integer id;    private String name;    // 不用Date类型做日期,因为实际开发中数据库表不会用Date类型//    @DateTimeFormat(pattern="yyyy-MM-dd")//    private Date birthday;    private String birthday;    private String address;}

1.1.6     
UserMapper.xml

<?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.staritgp.platform.demo.mapper.SysDeptMapper">

<!-- 通用查询映射结果 -->   <resultMap id="BaseResultMap" type="com.example.demo.entity.User">      <id column="user_id" property="userId" />      <result column="user_name" property="userName" />      <result column="birthday" property="birthday" />      <result column="address" property="address" />      <result column="create_time" property="createTime" />      <result column="update_time" property="updateTime" />      <result column="create_by" property="createBy" />      <result column="update_by" property="updateBy" />   </resultMap>

<!-- 通用查询结果列 -->   <sql id="Base_Column_List">        user_id AS userId, user_name AS userName, birthday AS birthday, address AS address, create_time AS createTime, update_time AS updateTime, create_by AS createBy, update_by AS updateBy    </sql>

<select id="findAll" resultType="com.example.demo.entity.User">      select      <include refid="Base_Column_List"></include>      from sys_dept where 1=1      <if test="userName != null and userName != ‘‘">         <!-- 名称模糊查询 -->         AND user_name like CONCAT(‘%‘,#{userName},‘%‘)      </if>      <if test="userId != null and userId != ‘‘">         AND user_id = #{userId}      </if>      <if test="createTime != null">         AND create_time = #{createTime}      </if>      <if test="updateTime != null">         AND update_time = #{updateTime}      </if>      <if test="createBy != null and createBy != ‘‘">         AND create_by = #{createBy}      </if>      <if test="updateBy != null and updateBy != ‘‘">         AND update_by = #{updateBy}      </if>   </select>

</mapper> 

1.1.7     
UserMapper.java 接口

package com.example.demo.mapper;

import com.example.demo.entity.User;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapperpublic interface UserMapper {

/**     * 自定义分页sql,调用xml方式     * @param user * @return */ List<User> findAll(User user);

// 调用注解方式 @Select("select * from user where user_id=#{id}")    public User findById(Integer id);}

1.1.8     
UserService.java

package com.example.demo.service.impl;

import com.example.demo.entity.User;import com.example.demo.mapper.UserMapper;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;

import java.util.List;

@Servicepublic class UserServiceImpl implements UserService {

@Autowired private UserMapper userMapper;

@Override public User findById(Integer id) {        return userMapper.findById(id); }

@Override public List<User> findAll(User user) {        return userMapper.findAll(user); }}

1.1.9     
UserServiceImpl.java

package com.example.demo.service.impl;

import com.example.demo.entity.User;import com.example.demo.mapper.UserMapper;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;

import java.util.List;

@Servicepublic class UserServiceImpl implements UserService {

@Autowired    private UserMapper userMapper;

@Override public User findById(Integer id) {        return userMapper.findById(id);    }

@Override public List<User> findAll(User user) {        return userMapper.findAll(user);    }} 

1.1.10   
UserController.java

使用@RestController替代@Controller和@ResponseBody(返回json串)

package com.example.demo.controller;

import com.example.demo.entity.User;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController@RequestMapping(value = "/user")public class UserController {    @Autowired    private UserService userService;

@RequestMapping("/find")    public List<User> findAll(User user) {        return userService.findAll(user);    }

@RequestMapping("/get/{id}")    public User findById(@PathVariable Integer id){        return userService.findById(id);    }

}

1.1.11   
application.yml

全局配置文件,yml为新的配置文件方式,注意其中格式为空格,不能有tab。

配置端口,配置数据源,配置mybatis全局配置。

注意:如果端口,启动时日志显示8080,说明此文件未加载。检查原因一般是文件名或者路径不正确。

# 服务端口server:  port: 8081# 数据连接池配置,druid 比 c3p0 还牛逼spring:    datasource:        type: com.alibaba.druid.pool.DruidDataSource        driver-class-name: com.mysql.jdbc.Driver        url: jdbc:mysql://127.0.0.1:3306/mybatisdb        username: root        password: root# com.example.demo 的子目录中的内容都会打印日志logging:  level:    com.example.demo: debug

1.1.12   
RunApplication.java

package com.example.demo;

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication// 扫描该包下的所有内容,什么mapperscan都不用管,约定大于配置@ComponentScan(basePackages = {"com.example.demo"})public class DemoApplication {

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

}

1.2        
拓展:约定大于配置

1.2.1     
在哪里约定的?

各组件都有注解形式的自动配置类,可以点进去看看,Spring帮我们定义了一个约定,遵守这个约定可以少好多事情,而且还不容易出错。

spring-boot-autoconfigure-1.5.4.RELEASE.jar

mybatis-spring-boot-autoconfigure-1.3.0.jar

pagehelper-spring-boot-autoconfigure-1.2.2.jar

1.3        
实现CRUD操作

1.3.1     
注解方式接口

剩下的CRUD方法,你们可以自行完善一下当做练手。

1.3.2     
UserController

package com.example.demo.controller;

import com.example.demo.entity.User;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController@RequestMapping(value = "/user")public class UserController {    @Autowired    private UserService userService;

@RequestMapping("/find")    public List<User> findAll(User user) {        return userService.findAll(user);    }

@RequestMapping("/get/{id}")    public User findById(@PathVariable Integer id){        return userService.findById(id);    }

@RequestMapping("/update")    public String update(User user) {        return userService.update(user);    }

// delete不做物理删除,只是标记为删除    @RequestMapping("/delete")    public Boolean finddeleteAll(User user) {        return userService.delete(user);    }

@RequestMapping("/add")    public User add(User user) {        return userService.add(user);    }

原文地址:https://www.cnblogs.com/wood-life/p/10302041.html

时间: 2024-07-30 21:28:11

SpringBoot整合SSM项目的相关文章

SpringBoot整合SSM(代码实现Demo)

SpringBoot整合SSM 如图所示: 一.数据准备: 数据库文件:数据库名:saas-export,表名:ss_company 创建表语句: DROP TABLE IF EXISTS ss_company;CREATE TABLE ss_company ( id varchar(40) NOT NULL COMMENT 'ID', name varchar(255) DEFAULT NULL COMMENT '公司名称', expiration_date datetime DEFAULT

SpringBoot整合ssm

1.创建工程 使用idea可以快速创建SpringBoot的工程 这里选择常用的类库,SpringBoot将各种框架类库都进行了封装,可以减少pom文件中的引用配置: 比如Spring和Mybatis整合的时候,传统Spring项目中需要引入: 1 <dependency> 2 <groupId>org.mybatis</groupId> 3 <artifactId>mybatis</artifactId> 4 <version>3.

SpringBoot整合SSM三大框架源码剖析之SpringBoot源码剖析

Spring Boot源码剖析 一.Spring Boot 项目的启动入口流程分析 Spring Boot项目的启动入口main线程上有一个@SpringBootApplication( @Configuration + @EnableAutoConfiguration + @ComponentScan )注解, 表明是主配置类, 让程序自动识别并进行必要的配置 项目启动后, 首先进行自动配置, 源码如下: ---在org.springframework.boot.autoconfigure 包

SpringBoot整合SSM之查询

一.引入项目所需要用到的依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId&g

spring-boot整合SSM框架

1.整合spring-MVC拦截器 1.编写拦截器(实现HandlerInterceptor接口) 2.编写配置类实现WebMvcConfigurer,在该类中添加各种组件. a.注册拦截器 b.添加拦截器到spring mvc 拦截器里 2.整合事物和连接池 1.事物配置 a.添加事物相关的启动器依赖,mysql相关依赖 b.编写业务类Service使用事物注解@Transactional 2.数据库连接池hlkari配置 只需要在application配置文件中指定数据库相关参数 3.整合M

SpringBoot整合ssm日期类型转换

日期类型转换,我借助了工具类, 第一种方法 工具类是自定义的 package cn.studio.util; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; import

springboot整合mybatis,redis,代码(一)

一 搭建项目,代码工程结构 使用idea或者sts构建springboot项目 二  数据库sql语句 SQLyog Ultimate v12.08 (64 bit) MySQL - 5.7.14-log ********************************************************************* */ /*!40101 SET NAMES utf8 */; create table `person` ( `id` int (11), `name`

SpringBoot整合mybatis使用pageHelper插件进行分页操作

SpringBoot整合mybatis分页操作 SpringBoot整合Mybatis进行分页操作,这里需要使用Mybatis的分页插件:pageHelper, 关于pageHelper的介绍,请查看官方文档: https://pagehelper.github.io/ 1.使用前配置 关于pageHelper的使用配置,主要有以下2个步骤: 1.1.在pom文件中导入pageHelper依赖 <dependency> <groupId>com.github.pagehelper&

搭建springboot的ssm(spring + springmvc + mybatis)的maven项目

最终项目目录结构 创建过程 1.创建开关SpringBootApplication 为了创建快速.我们使用idea自带的创建springboot来创建结构,当然创建普通的web项目也是可以的.(使用eclipse的同学可以按照一会的图来自己创建目录结构) 1.1 创建项目,按照图示进行选择 1.2 1.3 1.4 好了 我们的初始项目算是创建完成了.项目结构如下图所示,其中 Ssmspringboot2Application就是我们的开关文件 其实现在一个最简单的springboot项目我们已经