实现功能
搭建SSM,采用SpringBoot+MYSQL+Mybatis-plus
演示的接口demo实现功能,查询数据库中的SYS_Message表数据的内容
实现步骤
一、项目创建
1.File→New→Project
2.选择Spring Initializr,点击next
3.选择Java版本,建立自己需要的项目名称,点击next
4.Dependencies,Web勾选“Spring Web”
SQL 勾选 “JDBC API”、“Mybatis Framework”和“MySQL Driver”
5.点击Finish,由于我建立的demo有重名了,所以建立了demo66
6.删除不用的文件,.mvn下的wrapper文件夹,根目录的HELP.md、mvnw、mvnw.cmd和application.properties.
删除后目录结构
7.在pom.xml文件中增加Maven依赖
<?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 https://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.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--Mybatis-Plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!--数据库连接驱动 连接配置修改时间-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>prod</id>
<properties>
<package.environment>prod</package.environment>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<package.environment>dev</package.environment>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<package.environment>test</package.environment>
</properties>
</profile>
</profiles>
</project>
8.添加yml文件,在src的resources文件夹,右键→New→File,新建application.yml文件
application.yml的内容为
# 指定执行环境
spring:
profiles:
active: @package.environment@
新建application-dev.yml文件 (我们只用一个环境,暂时不建立test和prod的yml文件),切换选择profiles,就会选取不同的yml文件内容,如切换dev,就会读取application-dev.yml配置文件内容
profiles就是刚刚添加到pom.xml的配置
application-dev.yml 添加数据库连接配置,内容如下
server.port: 15022
spring:
devtools.restart.enabled: true #设置开启热部署
freemarker.cache: false #页面不加载缓存,修改即时生效,生产时改为true
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/message?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&allowMultiQueries=true
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
#Mybatis配置
#控制台打印sql
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
二.建立package,controller(接口)、dao.mapper(mybaits-plus对应的mapper)、entity(对应DB的实体)、service和service.impl
1.SYS_Message表数据如下
Message对应的Entity
package com.example.demo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
@TableName("SYS_Message")
@Data
public class Message implements Serializable {
/**
* 消息id
*/
private String msgid;
/**
* 消息标题
*/
private String msgtitle;
/**
* 消息内容
*/
private String msgbody;
}
2.Mapper 需要增加注解@Mapper和@Repository,集成BaseMapper<Message>,Message为Entity
package com.example.demo.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.Message;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface MessageMapper extends BaseMapper<Message> {
}
3.IMessageService 定义接口,增加接口getMessage
package com.example.demo.service;
import com.example.demo.entity.Message;
import java.util.List;
public interface IMessageService {
/***
* 获取所有消息
* @return List<Message>
*/
List<Message> getMessage();
}
4.MessageServiceImpl类,实现IMessageService,并继承ServiceImpl
package com.example.demo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.dao.mapper.MessageMapper;
import com.example.demo.entity.Message;
import com.example.demo.service.IMessageService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> implements IMessageService {
/**
* 获取所有消息
* @return List<Message>
*/
@Override
public List<Message> getMessage() {
return this.list();
}
}
5.Controller实现内容:
package com.example.demo.controller;
import com.example.demo.entity.Message;
import com.example.demo.service.IMessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("api/message")
public class MessageController {
@Autowired
private IMessageService iMessageService;
/**
* 获取消息列表
* @return List<Message>
*/
@RequestMapping(value = "/all", method = RequestMethod.GET)
public List<Message> gettestData() {
return iMessageService.getMessage();
}
}
成果演示
测试请求接口http://localhost:15022/api/message/all
返回接口数据如下:
由此项目就搭建完成了。