Spring 概念 all in one
目前开发时候遇到的问题:必须先搭建框架,步骤比较繁琐
期望 框架搭建好可直接用,常见的配置我们可以不管了,因为固定的那些配置是已经配置好的了。
可以把springboot理解为 spring+springmvc ,而且免配置。

本次记录选择spring initializr,也可选择maven创建,只是几个依赖包要自己手动添加 其他依赖即可,其他基本一致。
另外关于maven,加载依赖时会先从本地选择,相比一直从远程拉取会节省时间。

步骤初步较为详细,操作一步一步跟着搭就行了,如果遇到问题时,先看自己是否哪里配置出错,根据错误提示去解决问题。

配置步骤如下:

1.创建项目
  1. 选择spring initializr

springboot整合mysql主从 springboot如何整合mybatis_mybatis


  1. 包名

springboot整合mysql主从 springboot如何整合mybatis_mybatis_02


  1. web jdbc mybatis mysql 选择,根据需要选择相应依赖

springboot整合mysql主从 springboot如何整合mybatis_springboot整合mysql主从_03


springboot整合mysql主从 springboot如何整合mybatis_mybatis_04


2. 添加druid依赖

项目运行时如果出现版本冲突报错,可拉取高版本另外,pom文件中生成的若不满足后续需求,可继续添加依赖

<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.8</version>
        </dependency>

springboot整合mysql主从 springboot如何整合mybatis_spring_05


3. 创建包 bean controller mapper,resources中创建mybatis/mapper包

springboot整合mysql主从 springboot如何整合mybatis_springboot整合mysql主从_06


4. 在application.properties中配置,同application.yml文件

二选一即可 我这里 package com.dw.demo2.bean 下方配图写错了 注意要与自己的一直即可,图暂时就不换了

application.properties配置格式如下:

spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/sbtest?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#整合mybatis
mybatis.type-aliases-package=com.dw.demo.bean
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

springboot整合mysql主从 springboot如何整合mybatis_java_07


application.yml配置格式如下:

spring:
  datasource:
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/sbtest?useUnicode=true&characterEncoding=utf-8&userSSL=false&serverTimezone=GMT%2B8
    type: com.alibaba.druid.pool.DruidDataSource
mybatis:
  mapper-locations: classpath:mybatis/mapper/*.xml
  type-aliases-package: com.dw.demo.bean2

springboot整合mysql主从 springboot如何整合mybatis_spring_08


5. 使用database连接mysql逆向生成实体类,可用其他操作代替此步骤

在生成实体类时候,包名不一致,需要手动去更改,如果你有很好的办法解决,请告知,多谢

  1. 连接mysql

  1. 输入 用户名 密码 数据库

  1. 点击测试连接,修改serverTimezone 为Hongkong
    此步骤解决方案可参考此文章解决方案
    开发中一遍就会的idea连接Database步骤及应用和后续要注意的问题(Mysql举例)

springboot整合mysql主从 springboot如何整合mybatis_mybatis_09

springboot整合mysql主从 springboot如何整合mybatis_springboot整合mysql主从_10


  1. 再次点击测试 连接成功 确定

springboot整合mysql主从 springboot如何整合mybatis_mybatis_11


  1. 右键选择表 选择生成pojo 弹窗选择在bean目录下

springboot整合mysql主从 springboot如何整合mybatis_java_12

springboot整合mysql主从 springboot如何整合mybatis_springboot整合mysql主从_13


  1. 查看表已生成,修改package路径

springboot整合mysql主从 springboot如何整合mybatis_mybatis_14


springboot整合mysql主从 springboot如何整合mybatis_mybatis_15


springboot整合mysql主从 springboot如何整合mybatis_springboot整合mysql主从_16


6. mapper层创建文件

举例 创建 DeptMapper

springboot整合mysql主从 springboot如何整合mybatis_spring boot_17


7. 做映射,在resoureces中的mybatis/mapper目录下创建映射文件 自己写sql

例如 DeptMapper.xml

注意命名规范 以及目录路径

springboot整合mysql主从 springboot如何整合mybatis_mybatis_18


8. controller层创建文件 注入mapper 调用方法

springboot整合mysql主从 springboot如何整合mybatis_spring boot_19


9. springapplication 启动程序

springboot整合mysql主从 springboot如何整合mybatis_mybatis_20


springboot整合mysql主从 springboot如何整合mybatis_springboot整合mysql主从_21


10. 打开网页地址栏输入localhost:8080/请求 格式

springboot整合mysql主从 springboot如何整合mybatis_mybatis_22


程序跑起来了,也返回有结果,初步搭建雏形以上已经完成了。


另外在bean中添加了msg,返回成功 失败信息提示等其他信息,可加入其他信息 自己设定
如下:

public class Msg {
    //状态码 100-成功  200-失败   自定义的
    private int code;
    //提示信息
    private String msg;
    //用户返回给浏览器的数据
    private Map<String,Object> extend=new HashMap<String, Object>();

    public static Msg success() {
        Msg result=new Msg();
        result.setCode(100);
        result.setMsg("处理成功");
        return result;
    }

    public static Msg fail() {
        Msg result=new Msg();
        result.setCode(200);
        result.setMsg("处理失败");
        return result;
    }

    public Msg add(String key,Object value) {
        this.getExtend().put(key, value);
        return this;
    }

    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public Map<String, Object> getExtend() {
        return extend;
    }
    public void setExtend(Map<String, Object> extend) {
        this.extend = extend;
    }
}