说明:
(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到其应该在的位置;
2.把我们创建的(继承了Mapper接口的)MyMapper接口,放到【api】中;
3.把mapper接口、mapper.xml,放到【user】中;
二:在【imooc-news-dev-service-user】这个微服务子工程上,配置mybatis;
2.在application.yml中配置数据库、mybatis;
3. 在主启动类上,使用@MapperScan去配置Mapper接口位置;使用@ComponentScan去设置IoC容器初始化时扫描的范围;
PS:对于这儿,为什么放到的那些位置,如果不明白可以参考上篇博客【15:第二章:架构后端项目:11】;
1.把pojo实体类,放到【model】中;
(1)首先,在【imooc-news-dev-model】子工程中,引入MySQL驱动、mybatis、tkmybatis、PageHelper;
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <!--mapper--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> </dependency> <!-- pagehelper--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> </dependency>(2)然后,在【imooc-news-dev-model】子工程中创建对应的包,并把我们创建的pojo实体类,copy过去;
2.把我们创建的(继承了Mapper接口的)MyMapper接口,放到【api】中;
3.把mapper接口、mapper.xml,放到【user】中;
创建对应的包,并copy过去;
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】的主启动类;