从零开始搭建SpringBoot的Demo

版本说明:

​ Sprngboot:2.1.3.RELEASE

​ jdk:1.8

​ Mysql:5.7

​ Idea:2018.2.4

功能:集成通用Mapper实现CRUD

整体项目结构

建表语句:

CREATE TABLE t_user (
ID int(11) NOT NULL AUTO_INCREMENT,
USERNAME varchar(255) DEFAULT NULL,
PASSWORD varchar(255) DEFAULT NULL,
AGE int(12) DEFAULT NULL,
SEX varchar(12) DEFAULT NULL,
BIRTHDAY date DEFAULT NULL,
CREATE_DATE date DEFAULT NULL,
UPDATE_DATE date DEFAULT NULL,
NOTE varchar(255) DEFAULT NULL,
PRIMARY KEY (ID) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

第一步:搭建项目

新建一个maven空工程

填好GroupId和ArtifactId直接next

参数解释:GroupId:组织名,通常是用公司域名 ArtifactId为项目名 Version:版本 具体更详细的请看《maven实战》

第二步:pom.xml

<?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><groupId>com.huhst</groupId><artifactId>Producer</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.3.RELEASE</version></parent><properties><!--指定java版本--><java.version>1.8</java.version></properties><dependencies><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--Mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--通用Mapper--><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.0.3</version></dependency><!--SpringMvc支持--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
</project>

第三步:application.yaml

springboot的目的就是简化项目的配置,默认springboot去读resource下的application开头的文件,不过底层实际上仍然是.xml或者是注解形式的配置。

参数简单解释:

port:springboot自带tomcat,用来指定端口

username,password,url,driver-class-name:这四个参数为配置mysql连接,功能与以前的jdbc.properties一致

hikari:连接池,springboot默认支持,有兴趣可以百度下,效率是c3p0的很多倍

mybatis:Mybatis配置

logging:日志

server:port: 8088
spring:datasource:username: rootpassword: rooturl: jdbc:mysql://127.0.0.1:3306/huhstdriver-class-name: com.mysql.jdbc.Driverhikari:idle-timeout: 60000maximum-pool-size: 30minimum-idle: 10
mybatis:#  type-aliases-package: com.huhst.dtomapper-locations: classpath:mapper/*.xml
logging:level:com.huhst: debug

第四步:实体类

实体类 User

注解简单解释:

@Data 是来自于lombok的注解 加上它就不用再手动生成get set方法了

@Table 是来自import javax.persistence.Table;的注解,指定实体类User和t_user相互关联

@Id 是来自import javax.persistence.Table;的注解 标识这是主键

@KeySql(useGeneratedKeys = true) 是来自lombok的注解,表示是主键自增长

@Data
@Table(name = "t_user")
public class User {@Id@KeySql(useGeneratedKeys = true)private Integer id;private String username;private String password;private Integer age;private String sex;private Date birthday;private Date createDate;private Date updateDate;private String note;}

第五步:接口

可以看见这有两个mapper,@Mapper是来自于Mabatis的注解

而继承的tk.mybatis.mapper.common.Mapper是通用mapper,里面已经包含了常见的crud方法

@Mapper
public interface UserMapper extends tk.mybatis.mapper.common.Mapper<User> {
}

第六步:service接口

public interface UserService {/*** 插入用户信息* @param user* @return*/public int insertUserInfo(User user);/*** 根据id查询用户信息* @param id* @return*/public User queryUserInfoById(Integer id);}

第七步:service的实现类

@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic int insertUserInfo(User user) {return userMapper.insert(user);}@Overridepublic User queryUserInfoById(Integer id) {return userMapper.selectByPrimaryKey(id);}
}

第八步:控制器

参数简单解释:默认是知道ssm的哈

@Slf4j是来自lombok的注解,有了它,我们能直接输出日志:如 log.debug(“数据查询失败!”); 记得yaml里面得先配置日志级别哦

@RestController
@Slf4j
public class UserController {@Autowiredprivate UserService userService;@RequestMapping(value = "/api/insert")public Map insert(@RequestBody User user){HashMap<Object,Object> map = new HashMap<Object,Object>();try {userService.insertUserInfo(user);map.put("success",true);map.put("message","数据插入成功!");log.debug("数据插入成功");return map;}catch (Exception e){e.printStackTrace();log.debug("数据插入失败!");map.put("success",false);map.put("message","数据插入失败");return map;}}@RequestMapping(value = "/api/query")public Map queryById(@RequestBody User user){HashMap<Object,Object> map = new HashMap<Object,Object>();try {User userInfo = userService.queryUserInfoById(user.getId());log.debug("数据查询成功!");map.put("success",true);map.put("message","数据查询成功!");map.put("result",userInfo);return map;}catch (Exception e){e.printStackTrace();map.put("success",false);map.put("message","数据查询失败!");log.debug("数据查询失败!");return map;}}
}

第九步:启动器

值得注意的是,如果目录是和我一样的话ProducerApplication得在com.huhst包下,因为默认是扫当前包及其子包下

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

第十步:测试

从零开始搭建SpringBoot的Demo相关推荐

  1. 从零开始搭建springboot框架

    大家好,我是杨叔.每天进步一点点,关注我的微信公众号[程序员杨叔],获取更多测试开发技术知识!今天分享的内容是:从零开始搭建springboot框架 一.为什么要学习springboot? Sprin ...

  2. 从零开始搭建SpringBoot项目(三)——小程序Uni-app项目搭建(详细教程和实战)

    前情回顾 从零开始搭建SpringBoot项目(一)--开发环境搭建 从零开始搭建SpringBoot项目(二)--Swagger接口测试平台搭建 目录 前情回顾 一.前置条件 二.本篇介绍 三.获取 ...

  3. idea 引入oracle驱动并打包_IDEA下从零开始搭建SpringBoot工程

    SpringBoot的具体介绍可以参看其他网上介绍,这里就不多说了,就这几天的学习,个人理解,简而言之: (1)它是Spring的升级版,Spring容器能做到的事情,它都能做到,而且更简便,从配置形 ...

  4. idea ssm打war包_IDEA下从零开始搭建SpringBoot工程

    SpringBoot的具体介绍可以参看其他网上介绍,这里就不多说了,就这几天的学习,个人理解,简而言之: 如果想学习Java工程化.高性能及分布式.深入浅出.微服务.Spring,MyBatis,Ne ...

  5. 从零开始搭建SpringBoot项目(一)——开发环境搭建(图文详细)

    一.前置条件 需要安装 下载方法 IDEA 自备 jdk 1.8以上 自备 MySQL 5.7 百度网盘下载 , 提取码:8vyi Maven库 百度网盘下载 , 提取码:xq2u Navicat 1 ...

  6. 【Demo】idea搭建SpringBoot和AJAX前后端数据交互

    此文章详细介绍了idea 搭建springboot步骤,以及简易的前后端通过ajax进行简单数据交互代码,二话不说,进入正题. 第一步.idea开发工具搭建springboot框架 来看下整个项目结构 ...

  7. 【Elasticsearch】从零开始搭建ES8集群并且集成到Springboot,更好的服务电商类等需要全文索引的项目(二)

    从零开始搭建Elasticsearch集群(二) 从零开始搭建Elasticsearch集群(二) 为什么使用IK分词器 安装IK分词器到ES的插件库中 安装kibana可视化平台 1.下载 2.配置 ...

  8. spring boot:从零开始搭建一个项目 - day 7 springboot devtools热加载+MybatisPlus配置+kisso从入门到放弃

    spring boot:从零开始搭建一个项目 - day 7 springboot devtools热加载+MybatisPlus配置+kisso从入门到放弃 一.springboot devtool ...

  9. 一步一步教你在IEDA中快速搭建SpringBoot项目

    场景 IEDA 2017 现在要在IDEA中搭建SpringBoot项目快速输出HelloWorld. 实现 打开IEDA,点击File--new--project 选择左边的Spring Initi ...

最新文章

  1. 【mysql】mysql的数据库主从(一主一从)
  2. 成功解决pandas读取文件中不读取第一索引列
  3. 全库模式 用户模式 表模式_暗模式,亮模式和用户的故事
  4. iphone版 天行skyline_Skyline QT
  5. jq动态渲染后获取不到元素高度_浏览器的渲染机制
  6. mysql 查询优化 ~ 多表查询基础知识
  7. c语言随机产生10个30 100,c语言编写随机产生10个100~200之间整数,幷按从大到小排序...
  8. ResNet的学习笔记~
  9. 程序员降薪求职到底该不该?
  10. 深度神经网络面临的挑战与解决方案
  11. svn版本备份和恢复注意事项
  12. MultiRow发现之旅(五)- MultiRow版俄罗斯方块(exe + 源码)
  13. PowerPC 汇编
  14. 松下FP-XH系列PLC 断电保持寄存器使用注意事项
  15. Post 请求调试工具简介
  16. u8登录找不到服务器,用友u8不能连接到服务器
  17. 089 定积分之双纽线、心形线、摆线
  18. 高频算法题冒险之旅精讲(一)之LeetCode小牛试刀五道题
  19. 如何使用python编程抢京东优惠券 知乎_学好Python爬取京东知乎价值数据
  20. 1445. 苹果和桔子

热门文章

  1. button按钮置灰
  2. django.core.serializers.base.DeserializationError: Problem installing fixture
  3. wind量化交易接口怎么用?
  4. 网银互联携手Aryaka,全托付方案亮相SD-WAN峰会
  5. RedHat设置静态IP
  6. 智能安防是趋势 几大重点领域深入探讨
  7. 短语a slap on the wrist
  8. PCIE设备访问及其配置空间
  9. 【收藏】根据拼音首字母筛选人名
  10. linux ip打印机驱动程序,Ubuntu下佳能ip1000打印机驱动的安装