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

Spring+MyBatis+MyBatis-Plus整合及步骤详解

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

Spring+MyBatis+MyBatis-Plus整合及步骤详解

准备工作(文件名要取好,不然后面一堆bug)
    了解Maven,参考设计数据库表了解MyBatis,导一个包参考
 
        
            org.mybatis
            mybatis
            3.4.6
        
    了解Spring ,参考了解SpringMVC知道哪里去找依赖吗?

    https://mvnrepository.com/artifact/org.springframework了解spring常用jar包功能:(我个人用的5.1.2版本)
        
        
            org.springframework
            spring-core
            5.1.2.RELEASE
        
        
        
        
            org.springframework
            spring-beans
            5.1.2.RELEASE
        
        
        
        
            org.springframework
            spring-context
            5.1.2.RELEASE
        
        

    
         
        
            org.springframework
            spring-jdbc
            5.1.2.RELEASE
        
        
        
        
            org.springframework
            spring-tx
            5.1.2.RELEASE
        
        
 
        
        
            org.springframework
            spring-web
            5.1.2.RELEASE
        
        
        
        
            org.springframework
            spring-webmvc
            5.1.2.RELEASE
        
        

        
        
            org.springframework
            spring-test
            5.1.2.RELEASE
      
一、Spring+MyBatis整合

主要解决的问题就是将 SqlSessionFactory 对象交由 Spring来管理。
整合常用的方式:扫描的 Mapper 动态代理

1. 导入spring和mybatis相关依赖
 
         
        
            org.mybatis
            mybatis-spring
            2.0.2
        
        
        
            org.mybatis
            mybatis
            3.4.6
        
        
        
            org.springframework
            spring-context
            5.1.2.RELEASE
        
        
        
            org.springframework
            spring-jdbc
            5.1.2.RELEASE
        
        
        
            org.springframework
            spring-aspects
            5.1.2.RELEASE
        
        
        
            org.springframework
            spring-tx
            5.1.2.RELEASE
        
    
2. 创建 log4j2.properties(不强求创建)

pom.xml:

        
        
            org.apache.logging.log4j
            log4j-web
            2.12.1
        

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件,甚至是套接口服务器、NT的事件记录器等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

在resource下面创建log4j2.properties:



    
        
            
        
    
    
        
            
        
        
        
    

3. 定义 MyBatis 主配置文件

主配置文件中不再需要数据源的配置了。因为数据源要交给 Spring 容器来管理了。

创建mybatis.xml或者mybatis-config.xml:

全局属性mapUnderscoreToCamelCase,设为true 可以自动将以下画线方式命名的数据库列映射到 Java 对象的驼峰式命名属性中。





    
       
        
        
        
    


4. Spring配置数据源
    spring配置数据源的步骤
    ① 导入数据源的坐标和数据库驱动坐标
  
        
            mysql
            mysql-connector-java
            5.1.45
        
        
        
            com.mchange
            c3p0
            0.9.5.2
        

② 创建数据源对象——将DataSource的创建权交由Spring容器去完成

在类路径下(resources)创建applicationContext.xml配置文件


如果出现这种情况,就找到project structure——>module

    
        
        
        
        

        
        
        
        
        
    

③ 设置数据源的基本连接数据

新建一个db.properties文件,在里面编写代码:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名
jdbc.username=root
jdbc.password=root

看自己数据库用户和密码是多少,我设置的root

然后在applicationContext.xml里面继续配置


④ 使用数据源获取连接资源和归还连接资源


    我们为什么要使用数据库连接池?——以空间换时间

因为建立一个数据库连接是一个非常耗时耗力的事,如果使用连接池,当我们需要连接数据库服务器的时候,只需去连接池中取出一条空闲的连接,而不是新建一条连接。这样我们就可以大大减少连接数据库的开销,从而提高了应用程序的性能。


在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源。这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码,并且要为这个连接分配资源,Java程序则要把代表连接的java.sql.Connection对象等加载到内存中,所以建立数据库连接的开销很大

为了避免频繁地创建数据库连接,工程师们提出了数据库连接池技术。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是重新建立.

数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,当应用程序访问数据库时并不是直接创建Connection,而是向连接池“申请”一个Connection。如果连接池中有空闲的Connection,则将其返回,否则创建新的Connection。使用完毕后,连接池会将该Connection回收,并交付其他的线程使用,以减少创建和断开数据库连接的次数,提高数据库的访问效率。

  
        
            com.mchange
            c3p0
            0.9.5.2
        
       
			com.alibaba
			druid
			1.1.12
		

二者区别:
C3P0是一个快要淘汰的技术,操作和使用起来的话还是非常简单的,对于简化对数据库的操作来说还是非常的方便的。
Druid是目前最主流的连接池的技术,出自阿里巴巴也是使用得最多的连接池技术。

    注册 SqlSessionFactoryBean(4. 定义 Mapper 扫描配置器 MapperScannerConfigurer

Mapper 扫描配置器 MapperScannerConfigurer 会自动生成指定的基本包中 mapper 的代
理对象。该 Bean 无需设置 id 属性

或者也可以

 
    
        
        
        
        
        
        
    

注意:这里很容易出问题,你不要看我写的,要对照你自己创建的文件名来改

二、Spring+MyBatis+MyBatisPlus整合 1. 为什么用MyBatis-plus??——一个字,强

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生
官网文档入门:https://baomidou.com/pages/24112f/

2. 在pom.xml文件中加入依赖,去掉mybatis-spring和mybatis依赖
		
			com.baomidou
			mybatis-plus
			3.1.1
		
 
        
            org.projectlombok
            lombok
            true
            1.18.4
        

注意!!!

我就因为没有去掉另外两个导致test一直出错,心态不好了。

3. Idea连接mysql数据库并生成对应的实体类

关于时区问题
使用IDEA自动生成Java实体类

右击表,选择scripted Extensions——>Generate POJOs.groovy,一键生成POJO实体类

当然,因为导入了简化bean的Lombok,所以也可以这样

但是个人觉得,利用Idea的database数据库插件导入的实体类,已经把set、get方法给你自动写好了,你再动动鼠标或者Alt+Insert,补全也快,毕竟那三个注解只有@Data好记。

4.创建mapper接口
    创建mapper文件夹,文件夹下创建UserMapper接口将UserMapper继承baseMapper,将拥有了baseMapper中的所有方法
5. 在applicatioinContext.xml里面配置MyBatis-plus

  
 
        
    
    
    
        
    
6. 测试


测试要用到的资源也要复制粘贴一下

public class Test {

    @Autowired
    private UserMapper userMapper;

    @org.junit.Test
    public void testSelectList() {
        List users = userMapper.selectList(null);
        for (User user : users) {
            System.out.println(user);
        }
    }

成功啦

参考:https://www.zhihu.com/question/349816338/answer/2388179567

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

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

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