PS:一直在公司,用的是公司封装的框架。现在离职,就打算自己在自己电脑上基于标准的流程搭建个项目。
1. 下载一个模板工程:(Spring Initializr 可以下载),然后导入到开发软件中(我用的idea)
PS:今天看到网上写的,通过idea 自动生成工程(参考链接:Springboot Web:从零开始写helloworld_流年亦梦的博客-CSDN博客)。我看了下我的IDEA,发现么得。又百度了一把,发现要自行加个插件(老一点的博客,写的是搜索Spring boot ,反正我是搜不到,又有人建议搜Spring Assistant 插件,安装后,果然了创建的入口,但是在最后报错 404, 具体原因待后续再看看)
2. 配置myabtis 整合需要的POM 依赖:
添加两个pom依赖:(connector版本会有小故事)
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
3. 数据库配置:
在配置文件添加(默认生成的是application.properties):
#数据库驱动 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #连接串 spring.datasource.url=jdbc:mysql://localhost:3306/****?useUnicode=true&characterEncoding=UTF-8&useSSL=true&&serverTimezone=UTC #用户名 spring.datasource.username=root #密码 spring.datasource.password=****** #mapper路径 - 改成自己实际的 mybatis.mapper-locations=classpath:/mapper/*Mapper.xml
4. 启动类中要加上@MapperScan("com.example.dao-修改为自己实际的dao层路径") 注解;
5. Mapper文件书写注意 namespace 的对应。
3. 操作过程中遇到的小问题及分析处理:
- 驱动导致的小九九:刚开始参考网上写的,驱动配置的com.mysql.jdbc.Driver,即如下:spring.datasource.driver-class-name=com.mysql.jdbc.Driver,
- 启动提示:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
- 疑问:
- a. com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 驱动有啥使用上的差距?
- 方案一:搜了下 mysql-connector-java 6以及以上,才改成com.mysql.cj.jdbc.Driver。于是我把mysql-connector-java的版本改到了5.1.37,发现报错提示如下:
- 原因呢?搜了下,是因为 com.mysql.jdbc.Driver 在useSSL=true 情况下,会鉴权不通过,然后报错。于是,把 useSSL 改为false.问题解决。
- 方案二:用com.mysql.cj.jdbc.Driver驱动。然后又发现了强调,这个驱动,时区需要设置:serverTimezone=UTC,验证也没毛病。
- 配置文件导致的小九九:瞅了瞅发现启动日志打印了一句话:No active profile set, falling back to 1 default profile: "default". 提醒了我,当前项目比如多套环境,不同环境用不同的配置该如何设置的?
- 有一个参数叫做:spring.profiles.active ,不同环境配置这个参数配置不同,比如我本地启动dev,如下:
4. 思路扩展(下篇分解):
- 为啥加了 mybatis-spring-boot-starter 包依赖,就可以集成mybatis, spring中的starter是个啥?
- 上面日志打印报错SPI自动加载,啥叫SPI自动加载?
- myabtis 加载步骤分享;
5. 几个小工具:
- a. mybatis mapper文件和Dao的自动对应插件;
- b. POM 依赖树直接插件;