新手上路,出了好多错,记录一下

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的更多相关文章

  1. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  2. Spring boot集成Swagger,并配置多个扫描路径

    Spring boot集成Swagger,并配置多个扫描路径 1:认识Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目 ...

  3. Spring Boot 集成 Swagger 构建接口文档

    在应用开发过程中经常需要对其他应用或者客户端提供 RESTful API 接口,尤其是在版本快速迭代的开发过程中,修改接口的同时还需要同步修改对应的接口文档,这使我们总是做着重复的工作,并且如果忘记修 ...

  4. [转] 使用Spring Boot和Gradle创建项目

    Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的 ...

  5. 使用Spring Boot和Gradle创建AngularJS项目

    Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的 ...

  6. Spring Boot 集成 Swagger,生成接口文档就这么简单!

    之前的文章介绍了<推荐一款接口 API 设计神器!>,今天栈长给大家介绍下如何与优秀的 Spring Boot 框架进行集成,简直不能太简单. 你所需具备的基础 告诉你,Spring Bo ...

  7. Spring Boot 集成Swagger

    Spring Boot 集成Swagger - 小单的博客专栏 - CSDN博客https://blog.csdn.net/catoop/article/details/50668896 Spring ...

  8. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  9. Spring Boot初识(3)- Spring Boot整合Swagger

    一.本文介绍 如果Web项目是完全前后端分离的话(我认为现在完全前后端分离已经是趋势了)一般前端和后端交互都是通过接口的,对接口入参和出参描述的文档就是Mock文档.随着接口数量的增多和参数的个数增加 ...

随机推荐

  1. JS时间差(毫秒/天数/月份)

    var startDate = "2016-06-06"; var endDate = "2016-08-08"; var start=new Date(sta ...

  2. Html加水印和禁用复制和右键(jquery.watermark.js)

    近期遇到一个需求,需要在页面背景加上自己的水印和禁止用户在页面复制粘贴 解决: 水印使用的是jquery.watermark.js插件,这个插件可以在html背景上加水印,同时可以设置相关属性值. 相 ...

  3. API函数ShellExecute与ShellExecuteEx用法

    ShellExecute: 1.函数功能:你可以给它任何文件的名字,它都能识别出来并打开它.2.函数原型: HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpO ...

  4. php编译安装增加pdo扩展

    首先查看mysql版本和位置 mysql --version whereis mysql 去php安装目录安装扩展 cd /usr/local/src/php-5.4.25/ext/pdo_mysql ...

  5. linux下vim编辑器查找 关键字

    在  linux  vim 编辑器 下查找   关键字 方法[一] 1?short_open_tag : 它的意思是vim 打开文件的第一行 ? : 它的意思是反向查找 short_open_tag ...

  6. [nRF51822 AK II 教程]第一课,开发环境的配置及背景介绍【转】

    低功耗蓝牙4.0是全新的技术,并不向下兼容,也就是说它和蓝牙3.0.2.0什么的都不能通信的.另外,蓝牙4.0目前的规范只能做外设和主机(智能手机,电脑等)通讯,也就是说你想用一个单模的蓝牙4.0开发 ...

  7. 配置Maven私服

    Nexus 是“开箱即用”的系统,不需要数据库,它使用文件系统加 Lucene 来组织数据,支持 WebDAV 与 LDAP 安全身份认证.Nexus 还提供了强大的仓库管理功能,构件搜索功能,它基于 ...

  8. jeecg接口开发及权限实现原理

    接口开发使用的框架 jeecg本身是基于 Spring MVC 框架搭建的,因此,使用 Spring MVC 框架的 RESTful API 功能来进行接口开发就是顺理成章的事了. 接口的拦截与鉴权 ...

  9. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de 错误解决

    这是我们开启了bin-log, 我们就必须指定我们的函数是否是1 DETERMINISTIC 不确定的2 NO SQL 没有SQl语句,当然也不会修改数据3 READS SQL DATA 只是读取数据 ...

  10. Redis启动Sentinel出现警告的解决

    Redis 3.0.7版本启动时出现警告的解决办法 7283:M 12 Mar 12:13:33.749 # WARNING: The TCP backlog setting of 511 canno ...