栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

手把手教你springboot集成mybatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

手把手教你springboot集成mybatis

手把手教你springboot集成mybatis

很多小伙伴工作多年,但是在每次开始一个新项目的时候都要重新开始搭建项目。另一个就是新手小伙伴对于项目如何从零开始搭建的还存在疑问。在这片文章中,正好一次性解决这两个问题。

这是该项目的github地址,大家可以点击下载使用,也欢迎大家start,谢谢。

首先,我们需要创建一个springboot项目。创建方式分为两种:

1. 创建springboot项目
  • 使用企业版idea创建

 

直接选择【Finish】完成。此时创建了一个空的springboot项目。

  • springboot官网创建

    点击进入springboot官网

 

最终下载到一个zip文件,解压缩后通过idea导入

2. 添加Maven依赖

打开新生成的springboot项目,可以看到pom.xml里面只有少数几个依赖:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.7.2
         
    
    com.example
    demo1
    0.0.1-SNAPSHOT
    demo1
    demo1
    
        11
    
    
        
            org.springframework.boot
            spring-boot-starter
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



复制代码

为了让项目功能相对完善,我们需要补充以下依赖:

  • 基本的Spring和Spring MVC功能

    
    
        org.springframework.boot
        spring-boot-starter-web
    
    复制代码

    加上这个依赖后,可以使用spring和spring mvc的功能,比如@RestController,@Service,@Autowired,@RequestMapping等等,IOC和AOP的功能都可以使用。

  • 数据库引擎 mysql driver

    
    
        mysql
        mysql-connector-java
        8.0.29
    
    复制代码

    目前基本上使用的mysql都是8版本的,所以这里引入8版本的mysql driver;如果有需要引入其他数据库引擎的,可以到maven repository中找合适的依赖。

  • 数据库链接池

    
    
        com.alibaba
        druid
        1.2.11
    
    复制代码

    一般像数据库链接这样的资源都是比较重的,也就是说,数据库链接创建和销毁需要消耗很多资源,并且数据库链接是经常使用的。那么对于这种情况,一般我们会将数据库链接进行池化,这也就是我们使用druid的原因。如果小伙伴想使用其他的池化工具,比如dbcp,c3p0,HikariCP等等,也是可以替换的。

  • mybatis依赖

    
    
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        2.2.2
    
    复制代码

    mybatis其实就是一个基于数据库driver实现数据增删查改功能,并且将操作结果更加友好传递给java应用层的工具。如果没有mybatis的话,我们也可以自己基于driver去操作数据库,但是使用体验确实不好,或者我们自己重新创造一个类似的mybatis框架。

  • 分页依赖

    
    
        com.github.pagehelper
        pagehelper-spring-boot-starter
        1.4.3
    
    复制代码

    在业务需求上,我们的某些列表功能往往需要对数据进行分页查询。所以我们提前把这个工具引入进来,它可以在我们执行查询操作的时候,对查询功能实现自动分页,无需开发者过多干预。

  • lombok工具

    
    
        org.projectlombok
        lombok
        true
    
    复制代码

    这个工具很有用,它让我们避免了写过多的get,set方法,可以自动生成构造函数,hashcode方法,equals方法等等,这就是典型的效率工具,所以强烈推荐使用。

3. 添加插件
  • mybatis-generator插件

    
    
        org.mybatis.generator
        mybatis-generator-maven-plugin
        1.4.1
        
            true
            true
          ${basedir}/src/main/resources/mybatis/generator/generatorConfig.xml
        
    
    复制代码

    这是一个代码生成工具,它可以帮我们生成大多数的mybatis代码,比如生成单表的增删查改功能,还有就是单表的复杂条件查询功能。所以这也是一个效率功能,可以少写很多代码。

    插件添加完成后,可以在maven视图中可以看到mybatis-generator插件:

 

但是这个插件还不能正常运行,需要后面我们配置好后才行。

4. 配置项目

我们配置了依赖和插件后,需要把一些对应的项目配置也写好,这样才能让这个项目正常运行起来。

配置文件的话,我目前选择比较好用的yml格式的application.yml,小伙伴们也可以把项目中的application.properties重命名一下,改成application.yml。

  • 数据库配置

    spring:
      # 数据库链接配置
      datasource:
        url: jdbc:mysql://数据库ip:数据库端口/数据库名称?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=UTC
        driver-class-name: com.mysql.cj.jdbc.Driver
        username: 数据库用户名
        password: 数据库密码
        # 链接池
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
          # 链接池初始化大小
          initial-size: 8
          # 最大活跃数
          max-active: 16
          # 最小空闲数
          min-idle: 1
          # 最大等待时间
          max-wait: 60000
    复制代码

    博客中不方便对外透露我自己的数据库相关ip、端口等数据,所以就用中文替代,小伙伴可以根据自己的数据库的配置作出对应的修改。

    配置完毕后,我们的项目就可以正确链接数据库,并且也已经使用了链接池化的功能了。

  • mybatis配置

    # mybatis配置
    mybatis:
      check-config-location: true
      #  mybatis框架配置文件,对mybatis的生命周期起作用
      config-location: "classpath:mybatis/mybatis-config.xml"
      #  配置xml路径
      mapper-locations: "classpath:mybatis/mapper*.properties
                ***.xml
            
            true
        
    
    复制代码

    最终,我们的项目基本配置完毕,最后一步,让springboot扫描所有的mybatis接口,我们需要在springboot启动类加上@MapperScan(basePackages = "mapper类所放的包名")注解;这样springboot就会把所有的Mapper接口全部扫描进去,达到我们在springboot中集成mybatis的目的了。

    全部配置完毕后,我们就可以写代码开始一天的crud了,哈哈!

    最后,把application.yml和pom.xml展示出来:

    application.yml:

    spring:
      # 数据库链接配置
      datasource:
        url: jdbc:mysql://数据库ip:数据库端口/数据库名称?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=UTC
        driver-class-name: com.mysql.cj.jdbc.Driver
        username: 数据库用户名
        password: 数据库密码
        # 链接池
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
          # 链接池初始化大小
          initial-size: 8
          # 最大活跃数
          max-active: 16
          # 最小空闲数
          min-idle: 1
          # 最大等待时间
          max-wait: 60000
    # mybatis配置
    mybatis:
      check-config-location: true
      #  mybatis框架配置文件,对mybatis的生命周期起作用
      config-location: "classpath:mybatis/mybatis-config.xml"
      #  配置xml路径
      mapper-locations: "classpath:mybatis/mapper*.properties
                        ***.xml
                    
                    true
                
            
            
                
                
                    org.mybatis.generator
                    mybatis-generator-maven-plugin
                    1.4.1
                    
                        true
                        true
                        ${basedir}/src/main/resources/mybatis/generator/generatorConfig.xml
                        
                    
                
                
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                    
                        
                            
                                org.projectlombok
                                lombok
                            
                        
                    
                
            
        
    

    最近面试的小伙伴很多,对此我整理了一份Java面试题手册:基础知识、JavaOOP、Java集合/泛型面试题、
    Java异常面试题、Java中的IO与NIO面试题、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、
    Memcached、MongoDB、Spring、SpringBoot、SpringCloud、RabbitMQ、Dubbo、MyBatis、ZooKeeper、数据结构、算法、
    Elasticsearch、Kafka、微服务、Linux等等。可以分享给大家学习。【持续更新中】领取方式【999】就可以领取资料了
     

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1032427.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号