说明:
(1)本篇博客合理性说明:
● 我们在【15:第二章:架构后端项目:11:使用【mybatis-generator-core】依赖生成实体类、mapper接口、mapper.xml等逆向文件;(我们使用tkmybatis来帮助提升开发效率)】中,创建了针对user的实体类、mapper接口、mapper.xml;;;而且,也介绍了,我们创建好这些实体类、mapper接口、mapper.xml之后,应该把其放在什么位置;● 本篇博客,首先就先把实体类、mapper接口、mapper.xml放在其应该处于的位置;然后,再在【imooc-news-dev-service-user】这个会实际操作数据库的微服务子工程上,进行配置mybatis;
(2)本篇博客内容,虽然比较复杂,但其内容具有很强的可复制性;以后可以随时回来照猫画虎;
目录
一:把创建好的【实体类、mapper接口、mapper.xml】,copy到其应该在的位置;
1.把pojo实体类,放到【model】中;
2.把我们创建的(继承了Mapper接口的)MyMapper接口,放到【api】中;
3.把mapper接口、mapper.xml,放到【user】中;
二:在【imooc-news-dev-service-user】这个微服务子工程上,配置mybatis;
1.依赖说明;
2.在application.yml中配置数据库、mybatis;
3. 在主启动类上,使用@MapperScan去配置Mapper接口位置;使用@ComponentScan去设置IoC容器初始化时扫描的范围;
4.测试;
一:把创建好的【实体类、mapper接口、mapper.xml】,copy到其应该在的位置;
PS:对于这儿,为什么放到的那些位置,如果不明白可以参考上篇博客【15:第二章:架构后端项目:11】;
1.把pojo实体类,放到【model】中;
(1)首先,在【imooc-news-dev-model】子工程中,引入MySQL驱动、mybatis、tkmybatis、PageHelper;
mysql
mysql-connector-java
org.mybatis.spring.boot
mybatis-spring-boot-starter
tk.mybatis
mapper-spring-boot-starter
com.github.pagehelper
pagehelper-spring-boot-starter
(2)然后,在【imooc-news-dev-model】子工程中创建对应的包,并把我们创建的pojo实体类,copy过去;
2.把我们创建的(继承了Mapper接口的)MyMapper接口,放到【api】中;
3.把mapper接口、mapper.xml,放到【user】中;
创建对应的包,并copy过去;
PS:对于这儿,为什么放到的那些位置,如果不明白可以参考上篇博客【15:第二章:架构后端项目:11】;
1.把pojo实体类,放到【model】中;
(1)首先,在【imooc-news-dev-model】子工程中,引入MySQL驱动、mybatis、tkmybatis、PageHelper;
mysql mysql-connector-javaorg.mybatis.spring.boot mybatis-spring-boot-startertk.mybatis mapper-spring-boot-startercom.github.pagehelper pagehelper-spring-boot-starter
(2)然后,在【imooc-news-dev-model】子工程中创建对应的包,并把我们创建的pojo实体类,copy过去;
2.把我们创建的(继承了Mapper接口的)MyMapper接口,放到【api】中;
3.把mapper接口、mapper.xml,放到【user】中;
创建对应的包,并copy过去;
二:在【imooc-news-dev-service-user】这个微服务子工程上,配置mybatis;
1.依赖说明;
2.在application.yml中配置数据库、mybatis;
############################################################
#
# 用户微服务
# web访问端口号 约定:8003
#
############################################################
server:
# port: 8003
tomcat:
uri-encoding: UTF-8
max-swallow-size: -1 # tomcat默认大小2M,超过2M的文件不会被捕获,需要调整此处大小为100MB或者-1即可
############################################################
#
# 配置项目信息
#
############################################################
spring:
profiles:
active: dev # yml中“配置文件”的环境配置,dev表示开发环境,test表示测试环境,prod表示生产环境;
application:
name: service-user
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
datasource: # 数据源的相关配置
type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP
driver-class-name: com.mysql.jdbc.Driver # mysql驱动
url: jdbc:mysql://localhost:3308/imooc-news-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
username: root
password: 3**********9
hikari:
connection-timeout: 30000 # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
minimum-idle: 5 # 最小连接数
maximum-pool-size: 20 # 最大连接数
auto-commit: true # 自动提交(此属性控制从池返回的连接的默认自动提交行为)
idle-timeout: 600000 # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10分钟
pool-name: DateSourceHikariCP # 连接池名字
max-lifetime: 1800000 # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟 1800000ms
connection-test-query: SELECT 1
############################################################
#
# mybatis 配置
#
############################################################
mybatis:
type-aliases-package: com.imooc.pojo # 所有POJO类所在包路径
mapper-locations: classpath:mapper/*.xml # mapper映射文件
############################################################
#
# mybatis mapper 配置
#
############################################################
# 通用 Mapper 配置
mapper:
mappers: com.imooc.my.mapper.MyMapper
not-empty: false # 在进行数据库操作的的时候,判断表达式 username != null, 是否追加 username != ''
identity: MYSQL # 方言,使用的是MySQL
# 分页插件配置
pagehelper:
helperDialect: mysql
supportMethodsArguments: true
说明:
(1)我们此次配置了哪些内容?
(2)我们这儿数据库连接池使用的是HikariCP连接池;
● 有关数据库连接池的常识性内容,如有需要可以参考【(9)JDBC入门】中的内容;
● Spring Boot2推荐使用HikariCP连接池;其是一个非常快的数据源;有关HikariCP连接池的内容,可以参考【附加:HikariCP连接池简述;(并没有深究,只是对HikariCP连接池有个基本认识)】;
(3)配置mybatis的相关内容;
3. 在主启动类上,使用@MapperScan去配置Mapper接口位置;使用@ComponentScan去设置IoC容器初始化时扫描的范围;
说明:
(1)有关@MapperScan,如有需要可以参考【Spring Boot电商项目9:数据库设计与项目初始化四:在配置文件中,配置数据库、配置Mapper.xml位置;在主程序处通过@MapperScan配置Mapper接口位置;第一次全流程演示;】 ;
(2)按理说,对于Spring Boot项目,有了SpringBootApplication是可以不用再使用@ComponentScan的;;;自己在【(19)Spring Boot电商项目】这个项目中,就没有使用;;;;但是,虽然默认可以不用加。但是一般项目会加其他一些自定义的包,所以可以用于指定噢~
● 有关@ComponentScan,如有需要可以参考【Spring IoC容器与Bean管理25:使用Java Config方式实现Spring IoC一:对象实例化;(@Configuration,@Bean)】;
4.测试;
(1)先全局install一下整个项目;
(2)然后,运行【imooc-news-dev-service-user】的主启动类;
1.依赖说明;
2.在application.yml中配置数据库、mybatis;
############################################################
#
# 用户微服务
# web访问端口号 约定:8003
#
############################################################
server:
# port: 8003
tomcat:
uri-encoding: UTF-8
max-swallow-size: -1 # tomcat默认大小2M,超过2M的文件不会被捕获,需要调整此处大小为100MB或者-1即可
############################################################
#
# 配置项目信息
#
############################################################
spring:
profiles:
active: dev # yml中“配置文件”的环境配置,dev表示开发环境,test表示测试环境,prod表示生产环境;
application:
name: service-user
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
datasource: # 数据源的相关配置
type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP
driver-class-name: com.mysql.jdbc.Driver # mysql驱动
url: jdbc:mysql://localhost:3308/imooc-news-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
username: root
password: 3**********9
hikari:
connection-timeout: 30000 # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
minimum-idle: 5 # 最小连接数
maximum-pool-size: 20 # 最大连接数
auto-commit: true # 自动提交(此属性控制从池返回的连接的默认自动提交行为)
idle-timeout: 600000 # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10分钟
pool-name: DateSourceHikariCP # 连接池名字
max-lifetime: 1800000 # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟 1800000ms
connection-test-query: SELECT 1
############################################################
#
# mybatis 配置
#
############################################################
mybatis:
type-aliases-package: com.imooc.pojo # 所有POJO类所在包路径
mapper-locations: classpath:mapper/*.xml # mapper映射文件
############################################################
#
# mybatis mapper 配置
#
############################################################
# 通用 Mapper 配置
mapper:
mappers: com.imooc.my.mapper.MyMapper
not-empty: false # 在进行数据库操作的的时候,判断表达式 username != null, 是否追加 username != ''
identity: MYSQL # 方言,使用的是MySQL
# 分页插件配置
pagehelper:
helperDialect: mysql
supportMethodsArguments: true
说明:
(1)我们此次配置了哪些内容?
(2)我们这儿数据库连接池使用的是HikariCP连接池;
● 有关数据库连接池的常识性内容,如有需要可以参考【(9)JDBC入门】中的内容;
● Spring Boot2推荐使用HikariCP连接池;其是一个非常快的数据源;有关HikariCP连接池的内容,可以参考【附加:HikariCP连接池简述;(并没有深究,只是对HikariCP连接池有个基本认识)】;
(3)配置mybatis的相关内容;
3. 在主启动类上,使用@MapperScan去配置Mapper接口位置;使用@ComponentScan去设置IoC容器初始化时扫描的范围;
说明:
(1)有关@MapperScan,如有需要可以参考【Spring Boot电商项目9:数据库设计与项目初始化四:在配置文件中,配置数据库、配置Mapper.xml位置;在主程序处通过@MapperScan配置Mapper接口位置;第一次全流程演示;】 ;
(2)按理说,对于Spring Boot项目,有了SpringBootApplication是可以不用再使用@ComponentScan的;;;自己在【(19)Spring Boot电商项目】这个项目中,就没有使用;;;;但是,虽然默认可以不用加。但是一般项目会加其他一些自定义的包,所以可以用于指定噢~
● 有关@ComponentScan,如有需要可以参考【Spring IoC容器与Bean管理25:使用Java Config方式实现Spring IoC一:对象实例化;(@Configuration,@Bean)】;
4.测试;
(1)先全局install一下整个项目;
(2)然后,运行【imooc-news-dev-service-user】的主启动类;



