编译器:IDEA2018.3.4
环境:win17,jdk1.8,maven3.3.9
数据库:mysql
一、打开IDEA新建项目

  1. 如果你是第一次使用IDEA,那么你需要配置你本地的maven,点击右下角 Configure,如已配置请忽略此步骤

    在下拉框中选择setting,然后如下图操作,选择自己本地的maven路径与maven配置文件
    点击OK
    2.新建项目
    点击Create New Project 后,弹出如下界面,选择Spring Initializer,然后可以使用编译器自带的JDK,也可以点击New,新建并使用自己本地目录下的JDK环境
    当然你也可以选择Maven,使用Maven搭建自己的环境,但相信我,前者更为便捷

完成上述步骤,选择JDK之后,点击next,如下图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_idea搭建springBoot


一般来说直接next

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot集成mybatis_02


这里点击选择的是你开发时需要用到的,最后会在pom文件中生成,不点也没关系,只需要结束后自己在pom文件中导入自己需要的jar包

如果你只是构建一个SpringBoot,你可以什么都不选直接跳过这一步

由于后期我们要集成mybatis,所以我们勾选mybatis

由于我们的数据库是5.7,那么我们要勾选mysql

勾选完成后点击next,如下图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot_03


此处提示我们输入一些工程信息,那么,作为初学者,点击next就好,不要在意这些细节…

点击之后效果如图,请点击右下角Enable Auto-Import ,允许编译器在你改变pom文件后自动导入包,另外,左侧显示的三处不必要的文件和文件夹可以删除,如图所示

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot_04


完成上述步骤之后,项目结构及pom文件如下图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot框架搭建_05


至此一个SpringBoot项目构建完成,我们可以编写一个小小的demo来测试SpringBoot

3.SpringBoot 测试

首先在pom文件中添加如下依赖(非常重要的一个依赖)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

在<build> * </build>中配置
<build>
<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
        </includes>
    </resource>
</resources>

</build>

由于我们暂时没有实体类与jdbc连接,所以我们必须要将pom文件中有关mysql与mybatis的pom依赖注释掉,如图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_mybatis_06


在demo包下,新建controller包,并新建一个类GirlFriendController

package com.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GirlFriendController {
    
    @RequestMapping("/getgirlfriend")
    public String getGirlFriend(){
        return "程序员还想要媳妇儿![在这里插入图片描述]()...";
    }
}

如图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot框架搭建_07


然后我们找到编译器为我们生成的主类,或者叫入口类,然后点击运行main方法,如图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot框架搭建_08


项目成功启动后,我们在浏览器输入 http://localhost:8080/getgirlfriend ,就能返回结果(此处不需要输入项目名称)

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot集成mybatis_09


至此,SpringBoot框架搭建成功,下一步就是整合mybatis

4.整合mybatis

将我们之前注释掉的pom文件中的依赖放开,将注意力转至mysql数据库与mybatis上

首先,使用navcat打开mysql数据库并建立一张表girlfriend

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_mybatis_10


我们插入一条测试数据

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot框架搭建_11

女神艾莉丝,19岁好吧,各位绅士,建表及测试数据脚本如下

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for girlfriend
-- ----------------------------
DROP TABLE IF EXISTS `girlfriend`;
CREATE TABLE `girlfriend`  (
  `id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `age` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of girlfriend
-- ----------------------------
INSERT INTO `girlfriend` VALUES ('1', 'Alice', '19');

SET FOREIGN_KEY_CHECKS = 1;

好的,那么表数据准备完成,下一步准备根据mysql的表实现mybatis相关内容

我们使用工具来生成

工具下载地址 https://pan.baidu.com/s/1RvwKlsmpKJQ_PJkuNjiPdw

下载后解压,解压后进入 Mybatis\mybatis-generator-core-1.3.2\lib 目录,如图所示

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_idea搭建springBoot_12


点击进入src目录,删除src目录下的全部文件(这是上次使用产生的实体类与xml,我们不需要)

编辑 generatorConfig.xml

mapper.java文件和xml文件放在同一个包中

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot框架搭建_13


编辑完成generatorConfig.xml后,打开启动命令.txt,复制其中第一行或第二行命令,反正都一样…
然后点击cmd.exe
然后输入命令,如图,运行后提示成功信息

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot_14


在生成的
mapper.java文件中配置@Mapper和@Repository

将**mapper.java文件和xml文件放在同一个包中打开cmd.exe同目录下的src目录,我们会发现下面多了一些东西,如图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_mybatis_15


没错,他们就是这款工具帮我们生成的实体类,dao类,与xml文件

接下来我们在项目目录中新建相应的包、文件夹,并将工具帮我们生成的类与文件拷贝至IDEA新建的包或文件夹中

拷贝完成之后的项目结构如下图所示

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot集成mybatis_16


然后,我们删除IDEA帮我们创建的 application.properties ,新建 application.yml,如图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_idea搭建springBoot_17


配置代码如下

mybatis:
  typeAliasesPackage: com.example.demo.entity

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/campus?serverTimezone=UTC
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

我们新建一个service包与service类,如图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot集成mybatis_18


代码如下

package com.example.demo.service;
 
import com.example.demo.dao.GirlfriendMapper;
import com.example.demo.entity.Girlfriend;
import org.springframework.beans.factory.annotation.Autowired;<br>
@Service
public class GirlFriendService {
 
    @Autowired  或者  @Resouce
    private GirlfriendMapper girlfriendMapper;
 
    public Girlfriend getGirlFriendById(String id){
        return girlfriendMapper.selectByPrimaryKey(id);
    }
}

然后我们再改造一下 GirlFriendController ,如图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_idea搭建springBoot_19


代码如下

package com.example.demo.controller;
 
import com.example.demo.entity.Girlfriend;
import com.example.demo.service.GirlFriendService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class GirlFriendController {
 
    @Autowired
    private GirlFriendService girlFriendService;
 
    @RequestMapping("/getgirlfriend")
    public Girlfriend getGirlFriend(@Param("id") String id){
 
        Girlfriend girlfriend = girlFriendService.getGirlFriendById(id);
 
        return girlfriend;
    }
}

这时我们看到注入的 girlFriendService 在报错,我们打开编译器 file -》Project Structure -》Facets -》Spring ,然后将Spring(demo) 直接右键删除,确定,报错就解决了

然后我们再编辑入口类 DemoApplication ,添加扫描路径,代码如下

package com.example.demo;
 
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
@MapperScan("com.example.demo.dao")
public class DemoApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
 
}

至此大功告成,我们启动项目,在浏览器中输入 http://localhost:8080/getgirlfriend?id=1 ,就在此时,不料报错。。。。。。

Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_25]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_25]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_25]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408) ~[na:1.8.0_25]

百度才知道这是mysql时区设置问题啊,美帝太坏了…
打开mysql命令行输入

show variables like '%time_zone%'  

set global time_zone='+8:00';

如图 ,搞定

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_idea搭建springBoot_20


再次在浏览器中输入 http://localhost:8080/getgirlfriend?id=1 ,效果如图

spring boot配置mysqldervier pom引用 springboot如何配置mybatis_springBoot集成mybatis_21


至此全部完成