MyBatis:简介与基础使用指南

2023年 9月 7日 72.2k 0

引言

欢迎来到 MyBatis 的简介与基础使用指南!MyBatis 是一个备受欢迎的 Java 持久层框架,它在 Java 应用程序中实现了简单、灵活、高效的数据库访问。本文将引导您进入 MyBatis 的世界,从了解其基本概念到实际应用中的使用,帮助您轻松入门并开始使用这个强大的框架。

什么是 Mybatis

MyBatis(前身为 iBatis)是一个用于 Java 编程语言的持久层框架。它提供了一种将数据库操作与 Java 对象之间的映射关系定义在 XML 文件或注解中的方式,以简化数据库访问和操作。MyBatis 允许开发者通过配置文件或注解来定义 SQL 语句,并将查询结果映射到 Java 对象,从而实现了对象关系映射(ORM)。这种简洁而直观的方法使得开发者能够更轻松地与数据库交互,而无需编写复杂的 SQL 语句。

MyBatis 的历史与发展

MyBatis 最早由 Clinton Begin 创建,最初称为 iBATIS。它在 2002 年首次发布,随后迅速成为 Java 开发社区中备受欢迎的持久层框架。在 2010 年,iBATIS 的维护权交给了 Apache 软件基金会,随后框架改名为 MyBatis。自那以后,MyBatis 经过不断的改进和发展,已经成为了 Java 持久层框架中的佼佼者。

Mybatis 在 Java 开发的重要性

MyBatis 在 Java 开发中具有重要性,它为 Java 应用程序与数据库之间的数据访问提供了强大的工具和解决方案。Mybatis 在 Java 主要有以下几点重要性:

  • 简化数据库访问:MyBatis 允许开发者将数据库查询和操作的细节抽象到配置文件中,使得数据库访问更加简单和直观。开发者不需要编写繁琐的 JDBC 代码,而是可以通过 XML 或注解来定义 SQL 语句和映射关系。
  • 对象关系映射(ORM) :MyBatis 实现了对象关系映射,可以将数据库表的数据映射到 Java 对象,使得数据操作更加面向对象。这种方式让开发者可以使用 Java 对象来代表数据库中的数据,从而降低了数据访问的复杂性。
  • 灵活性和可定制性:MyBatis 允许开发者编写自己的 SQL 语句,从而更好地控制数据库操作。这种灵活性使得 MyBatis 适用于各种不同的数据库操作需求,包括复杂的查询、存储过程调用等。
  • 性能优化:MyBatis 提供了一些性能优化功能,包括缓存机制、批量操作支持等,可以帮助提高数据库访问的性能和效率。
  • 事务管理:MyBatis 集成了事务管理,可以确保数据库操作的一致性。开发者可以轻松管理事务,包括提交、回滚等操作。
  • 多数据库支持:MyBatis 具有多数据库支持,可以在不同的数据库供应商之间轻松切换。这使得开发者可以在不同的项目中使用相同的代码,而无需修改数据库访问逻辑。
  • 社区支持:MyBatis 拥有庞大的开发者社区,提供了丰富的文档、教程和支持。这使得开发者可以快速解决问题,并获取有价值的建议。
  • 与其他框架集成:MyBatis 可以与其他常见的 Java 框架(如 Spring)集成,从而更好地满足全栈开发的需求。
  • MyBatis 的优势

    MyBatis作为一种Java持久层框架,具有多重优势,使其在数据库访问中备受欢迎。以下是MyBatis的主要优势:

  • 灵活的 SQL 控制:MyBatis 允许您编写自定义 SQL 语句,从而更好地控制数据库操作。这对于需要执行复杂查询或优化 SQL 的应用程序非常有用。
  • 零入侵:MyBatis 不强制您的数据对象继承特定的基类或实现特定的接口。这意味着您可以将 MyBatis 轻松集成到现有的数据模型中,而无需对现有代码进行大规模更改。
  • 可读性:MyBatis 的 SQL 映射文件是纯文本的 XML,易于阅读和维护。您可以清晰地查看 SQL 语句,了解它们与 Java 对象之间的映射关系。
  • 轻量级:MyBatis 是一个轻量级框架,不引入过多的复杂性或不必要的抽象。这使得它在性能上表现出色,并且适用于需要高性能的应用程序。
  • ORM 和 SQL 的结合:MyBatis 融合了对象关系映射(ORM)和自定义 SQL 的优点。您可以使用对象映射,同时也可以根据需要编写自定义 SQL。
  • 多数据库支持:MyBatis 支持多种数据库,因此您可以在不同的数据库供应商之间切换而无需更改代码。这对于跨平台项目非常有用。
  • 事务管理:MyBatis 提供了内置的事务管理,可以轻松管理数据库操作的一致性。
  • 社区支持:MyBatis 拥有庞大的开发者社区,提供了广泛的文档、教程和社区支持。这使得开发者可以快速解决问题,并从其他开发者的经验中受益。
  • 与其他框架集成:MyBatis 可以与其他常见的 Java 框架(如 Spring)无缝集成,为全栈开发提供了便利。
  • 开源和活跃:MyBatis 是一个开源项目,拥有活跃的维护团队,持续改进和适应新的技术和需求。
  • 总的来说,MyBatis 的主要优势在于其灵活性、可读性、性能、轻量级特性以及与 SQL 和 ORM 的结合。这些优势使得 MyBatis 成为了 Java 开发中一个备受欢迎的持久层框架,适用于各种不同规模和类型的应用程序。选择 MyBatis 可以帮助开发者简化数据库访问并提高开发效率。但请注意,选择持久层框架通常还依赖于项目的具体需求和开发团队的偏好。

    Mybatis 环境设置

    Maven 下载与安装

    下载 Maven

  • 访问 Maven 官方网站:maven.apache.org/download.cg…
  • 在 "Files" 部分,找到最新版本的 Apache Maven 的链接,并点击进入。
  • 在下载页面中,找到 "Binary zip archive" 下载链接,通常是一个 ZIP 文件,点击下载。
  • 具体操作如下图所示:

    image.png

    安装 Maven

    解压 Maven

    下载完成后,将 ZIP 文件解压到您选择的目录。可以选择将 Maven 解压到任何位置,例如 /opt(Linux/macOS)或 C:(Windows)。

    解压后的目录结构应该如下所示:

    image.png

    Linux 配置环境变量
  • 打开终端。
  • 编辑 ~/.bashrc~/.zshrc 文件,具体取决于您使用的 shell。
  • 在文件的末尾添加以下行,替换 /path/to/apache-maven-3.x.y 为您解压 Maven 的实际路径:
  • export M2_HOME=/path/to/apache-maven-3.x.y
    export PATH=$M2_HOME/bin:$PATH
    
  • 保存并关闭文件。
  • 在终端中运行以下命令,使配置生效:
  • source ~/.bashrc  # 如果您使用的是bash shell,两者二选其一即可
    source ~/.zshrc  # 如果您使用的是zsh shell
    
    Windows 配置环境变量
  • 右键点击 "计算机" 或 "此电脑",然后选择 "属性"。

  • 在左侧面板中,选择 "高级系统设置"。

  • 在系统属性窗口中,点击 "环境变量" 按钮。

  • 在用户变量或系统变量部分,点击 "新建"。

  • 输入以下信息:

    • 变量名:M2_HOME
    • 变量值:Maven 的安装路径(例如,C:apache-maven-3.x.y
  • 找到系统变量中的 Path,点击 "编辑"。

  • 在编辑环境变量窗口中,点击 "新建",然后添加 %M2_HOME%bin

  • 点击 "确定" 以保存所有更改。

  • 验证 Maven 是否安装成功

    基于 Idea 创建 Maven 项目

    www.cnblogs.com/giswhw/p/14…

    Mybatis 依赖引入

    
        
        
            org.mybatis
            mybatis
            3.x.y 
        
    
        
        
            com.h2database 
            h2
            1.4.200 
        
            
        
          mysql
          mysql-connector-java
          8.0.28
        
        
        
        
          org.postgresql
          postgresql
          42.2.27
        
    
    

    驱动请按照数据库版本进行对应dev.mysql.com/doc/relnote…

    image.png

    配置 MyBatis 配置文件

    MyBatis 的配置文件是一个 XML 文件,通常命名为 mybatis-config.xml,它包含了MyBatis框架的全局配置信息。这个配置文件指导MyBatis如何工作,包括数据库连接、缓存、映射文件等各种设置。
    下面是一个最基本的示例

    
    
    
        
        
            
            
        
        
        
            
                
                
                
                    
                    
                    
                    
                
            
        
        
        
            
            
            
        
    
    

    经过上述配置,Mybatis 项目已经配置完毕。

    Mybatis 基本使用

    创建实体类 User

    public class User implements Serializable{
    
        private Long id ;
        private String userName ;
        private Date createTime;
        
        // get/set 方法省略
    }
    

    创建 User 的 Mapper 接口

    public interface UserMapper {
    
        User selectById(Integer id);
        
        // 插入 
        Integer insertUser(User user); 
        // 更新 
        Integer updateUser(User user); 
        // 删除 
        Integer deleteUser(Integer id);
    }
    

    创建 Mapper 接口对应的 Mapper 映射文件

    
    
    
        
        
            
            
            
        
        
            select id,user_name,create_time from t_user
            
                
                    and id=#{id}
                
            
        
    
    

    编写 Mybatis 测试类

    public class MybatisTest {
    
      SqlSessionFactory sqlSessionFactory;
      @Before
      public void before(){
        // 从 XML 中构建 SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
          inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
          e.printStackTrace();
        }
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      }
    
      /**
       * 基于StatementId的方式去执行SQL
       *      
       */
      @Test
      public void test() {
        try (SqlSession session = sqlSessionFactory.openSession()) {
          User user = (User) session.selectOne("cn.use.UserMapper.selectById", 1);
          System.out.println(user);
        }
      }
    }
    

    总结

    总的来说,MyBatis 是一个强大的 Java 持久层框架,为 Java 开发者提供了一个灵活且强大的工具来管理数据库访问。通过本指南,我们学习了如何配置 MyBatis、编写 SQL 映射文件、执行 SQL 操作等操作。这些基础知识为进一步探索 MyBatis 的高级特性和用法奠定了坚实的基础。无论您是初学者还是有经验的开发者,MyBatis 都是一个值得学习和掌握的工具。

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论