springboot实战

springboot论坛项目实战

技术架构

Spring Boot

Spring、Spring MVC、MyBatis

Redis、Kafka、Elasticsearch

Spring Security、Spring Actuator

开发环境

构建工具: Maven

开发工具:IDEA

数据库:Mysql、Redis

应用服务器:Tomcat

版本控制工具: Git

spring boot 核心作用
起步依赖、自动配置、端点监控
spring framework
spring boot
spring cloud
spring cloud data flow

@SpringBootTest注解就是将Spring Boot主类中导入的bean全都包含进来

spring boot的启动
执行SpringApplication.run 方法,启动tomcat并自动创建IOC容器,开启自动配置并扫描主配置类所在的包及其子包的实例,装配到IOC容器中

springMVC
@controller 标记一个类是controller
@restController 功能同@controller不同的是返回的数据格式为json
@requestMapping 设置请求路径 可以作用于类上和方法上
@requestParam 设置请求参数 name 参数名 require 是否为必填参数 defaultValue 默认值
@pathvariable 设置路径参数
@GetMapping 相当@requestMapping(method=RequestMethod.GET)
@PostMapping 相当@requestMapping(method=RequestMethod.POST)
@responseBody 设置返回的数据类型为json
@requestBody 设置请求的数据类型为json

mybatis
核心组件:
sqlsessionFactory: sqlsession的工厂类
sqlsession: mybatis的核心组件,用于向数据库执行sql
主配置文件:xml配置文件,可以对mybatis的底层行为做出详细的配置
mapper接口:就是dao接口,在mybatis中习惯性称为mapper
mapper映射器:用于编写sql,并将sql和实体类进行映射的组件,采用xml、注解均可实现

springboot整合mybatis
	基于注解的方式:
		只需在主配置文件中设置数据库的连接信息,在mapper接口中添加上@Mapper注解并编写相应的sql
@param 用与传递参数并给变量在sql中起别名

通过mybatis的sql语句构建器来编写动态的sql

class DiscussPostMapperProvider{
        public String findDiscussPosts(int userId, int start, int end){
            return new SQL(){
                {
                   SELECT("*");
                   FROM("discuss_post");
                   WHERE("status != 2");
                   if (userId >= 0){
                       WHERE("user_id = #{userId}");
                   }
                   ORDER_BY("type desc");
                   ORDER_BY("create_time desc");

                   LIMIT("#{start}, #{end}");
                }
            }.toString();
        }

Q:mybatis连接数据,取出的时间数据与实际不符,
原因是:mybatis连接mysql的URL使用的时区与mysql的不一致
mybatis使用的是:serverTimezone=GMT(格林威治时间)
mysql使用的系统时区(即所在地的时区)

解决:
第一步:设置数据库时间为东八区(北京)时间,保证debug时从数据库查出的时间一致。
第二步:设置连接mysql的url添加上时区

jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8

同时设置返回给前端的时间格式和时区设定,保证页面显示时间和数据库一致

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

 spring.jackson.time-zone=GMT+8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值