Mybatis的基本使用

  • MyBatis简介

MyBatis用于持久层框架,持久层是对数据库操作的部分,前版本iBatis 由Apache软件基金组织进行更名并维护。

特点:

简化数据库的操作

SQL映射灵活(半ORM框架)

支持高级映射

易于集成维护

配置动态SQL

缓存机制

功能:

替代JDBC,JDBC是java中提供的用于操作数据库的技术及方案

  1. 数据库的连接控制难。连接池
  2. SQL语句硬编码。将sql语句存放到xml配置文件中
  3. 参数传递问题。提供类型适配器
  4. 返回值问题。响应对象注入

总结:

  1. MyBaits 让程序开发者的工作聚焦在业务成面而不是SQL处理的层面
  2. 抗拒数据格式不匹配的问题

执行原理

Mybatis的基本使用_第1张图片

代码详解:

1、MyBatis的核心配置文件 通常命名为 mybatis-config.xml

它用于配置 MyBatis 的全局设置,包括数据库连接信息、事务管理器、数据源、映射文件等。




    
    
        
            
            
                
                
                
                
            
        
    
    
    
        
    
  • :声明这是一个 XML 文件,版本为 1.0,编码为 UTF-8。

  • :声明这个 XML 文件遵循 MyBatis 3.0 的 DTD(文档类型定义),DTD 定义了 XML 文件的结构和规则。

  •  根元素 所有配置都在这个标签内
  • environments 标签用于配置 MyBatis 的环境,default 属性指定默认使用的环境 ID
  • environment 标签定义了一个具体的环境配置,id 属性用于唯一标识这个环境。

  • transactionManager 标签用于配置事务管理器,type="JDBC" 表示使用 JDBC 事务管理器

  • dataSource 标签用于配置数据源,type="POOLED" 表示使用连接池数据源。

  • property 标签用于配置数据源的具体属性:

    • driver:数据库驱动类名。

    • url:数据库连接 URL。

    • username:数据库用户名。

    • password:数据库密码。

  • mappers 标签用于配置 MyBatis 的映射文件(Mapper 文件),mapper 标签指定了映射文件的位置,resource 属性指定了映射文件的路径。

这个 mybatis-config.xml 文件是 MyBatis 的核心配置文件,用于配置数据库连接、事务管理器、数据源和映射文件等信息。将它放在 resources 目录下是为了确保它在类路径中,MyBatis 能够正确加载并使用它。这种放置方式符合 Java 项目的标准结构,有助于项目的管理和维护。

2、数据库映射文件





    
       
  • mapper 标签是 Mapper 文件的根元素。

  • namespace 属性指定了这个 Mapper 文件的命名空间,通常是一个 Java 接口的全限定名(包括包名和类名)。MyBatis 会通过这个命名空间将 Mapper 文件与对应的 Java 接口绑定。

  • select * from user where id = #{id};

  • UserMapper 接口

    • 定义了数据库操作的方法。

    • 例如:

      public interface UserMapper {
          User selectUserById(int id);
      }
  • User 类

    • 表示用户实体,与数据库中的 user 表对应。

    • 例如:

      public class User {
          private int id;
          private String name;
          private Date Birthday;
          private int sex;
          private String phone;
          // getter 和 setter 方法
      }
  • UserMapperTest 类

    • 测试类,用于验证 UserMapper 接口的功能。


  • 总结

    • UserMapperTest 类:通过加载 MyBatis 配置文件、创建 SqlSessionFactory 和 SqlSession,获取 UserMapper 的代理对象,并执行 SQL 查询。

    • 整体流程:配置文件 → SqlSessionFactory → SqlSession → Mapper 代理对象 → SQL 查询 → 结果映射。

    • 文件关系

      • SqlMapConfig.xml 配置全局设置和 Mapper 文件位置。

      • UserMapper.xml 定义 SQL 语句与 Java 方法的映射。

      • UserMapper 接口定义数据库操作方法。

      • User 类表示用户实体。

    • 这种设计使得数据库操作更加面向对象,代码更加简洁和易于维护。

    你可能感兴趣的:(mybatis)