idea 社区版+spring boot+ssm+swagger创建rest api
新手上路,出了好多错,记录一下
1.创建数据库:springBootSsmTest
2.打开IDEA创建 Spring boot项目:File——New——Project——Spring Assistant,下一步,填好包名等信息,下一步
Develop Tool选Lombok
Web选Spring Web
SQL选Jpa,Mysql,Mybatis
3.把java文件夹标识 为Source Root(右键,Mark as Directory As —— Source Root)
4.在com.my.demo下创建package命名为model,然后在这里创建 Java 类
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor; import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table; @NoArgsConstructor
@AllArgsConstructor
@Data
@Entity
@Table(name = "tb_user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String userName;
private String password;
private String email;
}
5.在resources下创建文件application.yml,删除原先的application.properties,粘帖如下代码:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/springbootssmtest?serverTimezone=UTC
username: root
password: 123456 jpa:
hibernate:
ddl-auto: update
show-sql: true
6.运行程序,会自动生成数据表。
7.创建package命名为mapper,添加一个java类,命名为UserMapper
import java.util.List;
public interface UserMapper {
User getUser(Integer id);//根据id获取信息
boolean addUser(User user);//新增
boolean modifyUser(User user);//修改
boolean deleteUser(Integer id);//根据id删除
List<User> getAll();//获取所有
}
8.创建package命名为service,添加一个java类,命名为UserService
@Service
public class UserService {
@Autowired
private UserMapper userMapper; public User getUser(Integer id){
return userMapper.getUser(id);
} public boolean addUser(User user){
return userMapper.addUser(user);
} public boolean modifyUser(User user){
return userMapper.modifyUser(user);
} public boolean deleteUser(Integer id){
return userMapper.deleteUser(id);
} public List<User> getAll(){
return userMapper.getAll();
}
}
9.创建package命名为controller,创建Java类命名为UserController
@RestController
public class UserController {
@Autowired
private UserService userService; /**
* 获取默认的数据源信息
* @return
* @throws SQLException
*/ /**
* 根据id获取信息
* @param id
* @return
* @throws SQLException
*/
@ResponseBody
@GetMapping("/user/get/{id}")
public User getUser(@PathVariable("id") Integer id){
return userService.getUser(id);
} /**
* 获取所有信息
* @return
*/
@ResponseBody
@GetMapping("/user/list")
public List<User> getAll(){
return userService.getAll();
} /**
* 新增信息
* @param user
* @return
*/
@ResponseBody
@PostMapping("/user/add")
public boolean addUser(@RequestBody User user){
return userService.addUser(user);
} /**
* 修改信息
* @param user
* @return
*/
@ResponseBody
@PutMapping("/user/put")
public boolean modifyUser(@RequestBody User user){
return userService.modifyUser(user);
} /**
* 删除信息
* @param id
* @return
*/
@ResponseBody
@DeleteMapping("/user/delete/{id}")
public boolean deleteUser(@PathVariable("id") Integer id){
return userService.deleteUser(id);
}
}
10.添加依赖,Import Change
<!-- 整合Swagger依赖方便 REST测试 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
11.打开主类,添加注解,记得改包名
@MapperScan("com.my.demo.mapper")//自动扫描的Mapper包,如果这里不指定,则需要在每个Mapper接口中添加@Mapper主键(这两种方法二选一)
@EnableSwagger2 //开启Swagger2功能,方便测试RestApi
12.在resources下创建目录mapper,添加一个文件UserMapper,记得修改文件中两处包名。
<?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.my.demo.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.my.demo.model.User">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="user_name" jdbcType="VARCHAR" property="userName"/>
<result column="password" jdbcType="VARCHAR" property="password"/>
<result column="email" jdbcType="VARCHAR" property="email"/>
</resultMap>
<!-- 根据id获取信息 -->
<select id="getUser" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select * from tb_user t where t.id = #{id}
</select>
<!-- 获取所有信息 -->
<select id="getAll" resultMap="BaseResultMap">
select * from tb_user t
</select>
<!-- 新增 -->
<insert id="addUser" parameterType="user">
insert into tb_user values(default,#{userName},#{password},#{email})
</insert>
<!-- 修改 -->
<update id="modifyUser" parameterType="user">
update tb_user set user_name=#{userName},password=#{password},email=#{email} where id = #{id}
</update>
<!-- 删除 -->
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from tb_user where id = #{id}
</delete>
</mapper>
13.在application.yml中添加,记得改包名,顶格,和spring同一层次。
# Mybatis相关配置
mybatis:
# 对象别名包
type-aliases-package: com.my.demo.model
# Mybatis mapper.xml映射文件配置
mapper-locations:
- classpath:mappers/*.xml
14.运行程序吧。
idea 社区版+spring boot+ssm+swagger创建rest api的更多相关文章
- Spring Boot 集成 Swagger 生成 RESTful API 文档
原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...
- Spring boot集成Swagger,并配置多个扫描路径
Spring boot集成Swagger,并配置多个扫描路径 1:认识Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目 ...
- Spring Boot 集成 Swagger 构建接口文档
在应用开发过程中经常需要对其他应用或者客户端提供 RESTful API 接口,尤其是在版本快速迭代的开发过程中,修改接口的同时还需要同步修改对应的接口文档,这使我们总是做着重复的工作,并且如果忘记修 ...
- [转] 使用Spring Boot和Gradle创建项目
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的 ...
- 使用Spring Boot和Gradle创建AngularJS项目
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的 ...
- Spring Boot 集成 Swagger,生成接口文档就这么简单!
之前的文章介绍了<推荐一款接口 API 设计神器!>,今天栈长给大家介绍下如何与优秀的 Spring Boot 框架进行集成,简直不能太简单. 你所需具备的基础 告诉你,Spring Bo ...
- Spring Boot 集成Swagger
Spring Boot 集成Swagger - 小单的博客专栏 - CSDN博客https://blog.csdn.net/catoop/article/details/50668896 Spring ...
- spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件
本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...
- Spring Boot初识(3)- Spring Boot整合Swagger
一.本文介绍 如果Web项目是完全前后端分离的话(我认为现在完全前后端分离已经是趋势了)一般前端和后端交互都是通过接口的,对接口入参和出参描述的文档就是Mock文档.随着接口数量的增多和参数的个数增加 ...
随机推荐
- Yii2查询语句
Yii2常用的查询: Yii2原生查询: $request = Yii::$app->request; $shopid = $request->post('shopid'); $gps = ...
- Shiro学习(19)动态URL权限限制
用过spring Security的朋友应该比较熟悉对URL进行全局的权限控制,即访问URL时进行权限匹配:如果没有权限直接跳到相应的错误页面.Shiro也支持类似的机制,不过需要稍微改造下来满足实际 ...
- Luogu P1738 洛谷的文件夹
P1738 Luogu 发一个链表题解! 仅有24ms,排名第一哦~ 圆圈代表点,每个店有两个指针,一个指向自己兄弟(同级文件夹),另一个指向自己孩子(子文件夹),还有一个保存当前名字. 有点像二叉树 ...
- Hadoop-HDFS的伪分布式和完全分布式集群搭建
Hadoop-HDFSHDFS伪分布式集群搭建步骤一.配置免密登录 ssh-keygen -t rsa1一句话回车到底 ssh-copy-id -i ~/.ssh/id_rsa.pub root@no ...
- Useful code snippets with C++ boost
Useful code snippets with C++ boost Is Punctuation It’s very straight forward to use boost.regex as ...
- python Pool并行执行
# -*- coding: utf-8 -*- import time from multiprocessing import Pool def run(fn): #fn: 函数参数是数据列表的一个元 ...
- 戏说 .NET GDI+系列学习教程(二、Graphics类的方法)
一.DrawBezier 画立体的贝尔塞曲线 private void frmGraphics_Paint(object sender, PaintEventArgs e) { Graphics g ...
- 【react】---Hooks的基本使用---【巷子】
一.react-hooks概念 React中一切皆为组件,React中组件分为类组件和函数组件,在React中如果需要记录一个组件的状态的时候,那么这个组件必须是类组件.那么能否让函数组件拥有类组件的 ...
- Java8中Map的遍历方式总结
在这篇文章中,我将对Map的遍历方式做一个对比和总结,将分别从JAVA8之前和JAVA8做一个遍历方式的对比,亲测可行. public class LambdaMap { private Map< ...
- Dubbo面试20问!这些题你都遇到过吗?
作者:Dean Wang https://deanwang1943.github.io/bugs/2018/10/05/面试/饿了么/dubbo 面试题/ 1.dubbo是什么 dubbo是一个分布式 ...