码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 16:第二章:架构后端项目:12:配置mybatis;(在【imooc-news-dev-service-user】这个微服务子工程上,配置)


    说明:

    (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;

    1. <dependency>
    2. <groupId>mysql</groupId>
    3. <artifactId>mysql-connector-java</artifactId>
    4. </dependency>
    5. <!--mybatis-->
    6. <dependency>
    7. <groupId>org.mybatis.spring.boot</groupId>
    8. <artifactId>mybatis-spring-boot-starter</artifactId>
    9. </dependency>
    10. <!--mapper-->
    11. <dependency>
    12. <groupId>tk.mybatis</groupId>
    13. <artifactId>mapper-spring-boot-starter</artifactId>
    14. </dependency>
    15. <!-- pagehelper-->
    16. <dependency>
    17. <groupId>com.github.pagehelper</groupId>
    18. <artifactId>pagehelper-spring-boot-starter</artifactId>
    19. </dependency>

    (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;

    1. ############################################################
    2. #
    3. # 用户微服务
    4. # web访问端口号 约定:8003
    5. #
    6. ############################################################
    7. server:
    8. # port: 8003
    9. tomcat:
    10. uri-encoding: UTF-8
    11. max-swallow-size: -1 # tomcat默认大小2M,超过2M的文件不会被捕获,需要调整此处大小为100MB或者-1即可
    12. ############################################################
    13. #
    14. # 配置项目信息
    15. #
    16. ############################################################
    17. spring:
    18. profiles:
    19. active: dev # yml中“配置文件”的环境配置,dev表示开发环境,test表示测试环境,prod表示生产环境;
    20. application:
    21. name: service-user
    22. jackson:
    23. date-format: yyyy-MM-dd HH:mm:ss
    24. time-zone: GMT+8
    25. datasource: # 数据源的相关配置
    26. type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP
    27. driver-class-name: com.mysql.jdbc.Driver # mysql驱动
    28. url: jdbc:mysql://localhost:3308/imooc-news-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
    29. username: root
    30. password: 3**********9
    31. hikari:
    32. connection-timeout: 30000 # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
    33. minimum-idle: 5 # 最小连接数
    34. maximum-pool-size: 20 # 最大连接数
    35. auto-commit: true # 自动提交(此属性控制从池返回的连接的默认自动提交行为)
    36. idle-timeout: 600000 # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10分钟
    37. pool-name: DateSourceHikariCP # 连接池名字
    38. max-lifetime: 1800000 # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟 1800000ms
    39. connection-test-query: SELECT 1
    40. ############################################################
    41. #
    42. # mybatis 配置
    43. #
    44. ############################################################
    45. mybatis:
    46. type-aliases-package: com.imooc.pojo # 所有POJO类所在包路径
    47. mapper-locations: classpath:mapper/*.xml # mapper映射文件
    48. ############################################################
    49. #
    50. # mybatis mapper 配置
    51. #
    52. ############################################################
    53. # 通用 Mapper 配置
    54. mapper:
    55. mappers: com.imooc.my.mapper.MyMapper
    56. not-empty: false # 在进行数据库操作的的时候,判断表达式 username != null, 是否追加 username != ''
    57. identity: MYSQL # 方言,使用的是MySQL
    58. # 分页插件配置
    59. pagehelper:
    60. helperDialect: mysql
    61. 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】的主启动类;

  • 相关阅读:
    淘宝/天猫API:upload_img-上传图片到淘宝
    py 时候同时打开多个页面,操作多个页面
    Vue中使用Switch开关用来控制商品的上架与下架情况、同时根据数据库商品的状态反应到前台、前台修改商品状态保存到数据库
    几张高度概括电阻、电容、电感与磁珠的思维导图(高清原图)
    通过winscp软件实现windows与linux目录数据同步
    从原理到应用,人人都懂的ChatGPT指南
    SEO优化之扁平化目录结构PbootCMS
    localForage封装代码
    【网络编程】基于TCP的服务器端/客户端
    Linux环境搭建与登陆
  • 原文地址:https://blog.csdn.net/csucsgoat/article/details/125458934
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号