课程名称:Spring Cloud 进阶 Alibaba 微服务体系自媒体实战
课程章节: 第2章 架构后端项目
主讲老师: 风间影月
课程内容
当服务构建好了之后,需要去配置对应的数据持久层的有关代码。在学习的项目当中,使用的是Mybatis框架作为数据持久化框架。
在真正开始配置之前,我们需要配置有关的代码生成器,通过代码生成器可以生成有关的实体类以及mapper文件等。
逆向工程
导入逆向工具到项目中
打开老师的mybatis-generator-database项目工程,在工程中配置表相关注解。
配置好数据表并且运行Generator类
配置mybatis的基本环境:
imooc-news-dev-model 中放入maven依赖:
<!-- mysql 驱动 --> <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-service-user 中配置yml
spring: datasource: # 数据源的相关配置 type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP driver-class-name: com.mysql.jdbc.Driver # mysql驱动 url: jdbc:mysql://localhost:3306/imooc-news-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true username: root password: root 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 # 分页插件配置 pagehelper: helperDialect: mysql supportMethodsArguments: true ```
添加启动类的扫描注解
// 扫描 mybatis 通用 mapper 所在的包 @MapperScan(basePackages = "com.imooc.user.mapper") // 扫描所有包以及相关组件包 @ComponentScan("com.imooc")
课程收获
mybatis逆向工程
classPathEntry:配置的本地驱动包路径。
<propertyname="javaFileEncoding"value="UTF-8"/>:指定生成的java文件的编码方式
<propertyname="suppressAllComments"value="true" />:是否去除自动生成的注释;true(是)/false(否)
jdbcConnection:数据库连接的信息:驱动类、连接地址、用户名、密码;注意driverClass的值,mysql驱动8版本的带cj包名称
javaTypeResolver:默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer;为true时把JDBC DECIMAL和 NUMERIC类型解析为java.math.BigDecimal
javaModelGenerator:逆向生成的POJO类的配置;targetPackage(包名称)可以指定,也可以不指定;targetProject(逆向生成的文件保存目录)
sqlMapGenerator:逆向生成的xml文件的配置