当前位置: 首页 > news >正文

Mybatis的使用

MyBatis 是一个流行的 Java 持久层框架,它提供了 SQL 映射和对象关系映射的功能,让开发者能够更加便捷地操作数据库。MyBatis 通过 XML 或注解的方式配置 SQL 语句,并将 Java 对象与数据库表进行映射,以简化 JDBC 的复杂操作。以下是 MyBatis 使用的详细介绍,包括环境配置、基本概念、主要特性以及操作步骤。

环境配置

  1. 添加依赖:在 Maven 项目的 pom.xml 文件中添加 MyBatis 的依赖。

    <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version>
    </dependency>
    

    如果使用 Spring Boot,可以添加 MyBatis Spring Boot Starter 的依赖。

    <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version>
    </dependency>
    
  2. 配置数据源:在 application.propertiesapplication.yml 文件中配置数据库的数据源信息。

    spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
    spring.datasource.username=root
    spring.datasource.password=yourpassword
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    
  3. 配置 MyBatis:指定 MyBatis 的配置文件或 Mapper 文件的位置。

    mybatis.config-location=classpath:mybatis-config.xml
    mybatis.mapper-locations=classpath:mapper/*.xml
    

基本概念

  • SqlSessionFactory:MyBatis 通过 SqlSessionFactory 实例来创建 SqlSession,SqlSessionFactory 的实例化通常通过 SqlSessionFactoryBuilder 从 XML 配置文件或一个预先配置的 Configuration 实例中构建得到。
  • SqlSession:表示和数据库交互的会话,用于执行 SQL 语句。
  • Mapper:在 MyBatis 中,Mapper 接口与 XML 文件或注解关联,定义了数据库操作方法。MyBatis 自动生成 Mapper 接口的实现。

主要特性

  • 映射 SQL 语句:MyBatis 允许将 SQL 语句写在 XML 文件中或通过注解的方式直接在接口方法上定义。
  • 动态 SQL:MyBatis 支持动态 SQL 语句的构建,如条件查询、循环语句等。
  • 对象和数据库表的映射:MyBatis 支持复杂的对象关系映射,包括一对一、一对多和多对多关系。

操作步骤

  1. 定义 Mapper XML 文件:创建一个 Mapper XML 文件,定义 SQL 语句和映射规则。

    <!-- UserMapper.xml -->
    <mapper namespace="com.example.mapper.UserMapper"><select id="selectUser" resultType="com.example.model.User">SELECT * FROM users WHERE id = #{id}</select>
    </mapper>
    
  2. 创建 Mapper 接口:定义一个 Mapper 接口,与 Mapper XML 文件对应。

    package com.example.mapper;public interface UserMapper {User selectUser(int id);
    }
    
  3. 使用 SqlSession:通过 SqlSessionFactory 获取 SqlSession,然后通过 SqlSession 调用 Mapper 接口的方法。

    SqlSession session = sqlSessionFactory.openSession();
    try {UserMapper mapper = session.getMapper(UserMapper.class);User user = mapper.selectUser(1);
    } finally {session.close();
    }
    

MyBatis 通过以上机制,实现了从 Java 应用到数据库的流畅交互,极大地简化了数据库编程工作。此外,MyBatis 社区提供了大量插件和扩展,进一步增强了其灵活性和功能性。

http://www.lryc.cn/news/300380.html

相关文章:

  • Python 播放音乐
  • [嵌入式系统-21]:RT-Thread -7- 内核组件编程接口 - 定时器
  • Python Matplotlib 的学习笔记
  • SQL语言1
  • PowerShell搭建vue起始项目
  • jmeter遇到连接数据库的问题
  • 应急响应实战笔记02日志分析篇(3)
  • 常见性能优化策略
  • 【微信小程序】微信小程序开发:从入门到精通
  • 【经验】STM32的一些细节
  • ubuntu22.04安装部署03: 设置root密码
  • 【lesson56】生产者消费者模型
  • MySQL5.7升级到MySQL8.0的最佳实践分享
  • Rust 数据结构与算法:5栈:用栈实现前缀、中缀、后缀表达式
  • 作业day6
  • 前方预警!2024年七大网络安全威胁
  • 绿色化 数据库 MongoDB 和 mysql 安装
  • npm install 一直卡着不动如何解决
  • 电路设计(15)——篮球赛24秒违例倒计时报警器的proteus仿真
  • golang 集成sentry:http.Client
  • 设计链表(不难,代码稍微多一点)
  • [GXYCTF2019]禁止套娃
  • ubuntu下如何查看显卡及显卡驱动
  • 【图论经典题目讲解】CF786B - Legacy 一道线段树优化建图的经典题目
  • 【AIGC】Stable Diffusion的采样器入门
  • 【Python】通过conda安装Python的IDE
  • 基于HTML5实现动态烟花秀效果(含音效和文字)实战
  • 「数据结构」栈和队列
  • 【机器学习笔记】5 机器学习实践
  • C++ //练习 7.5 在你的Person类中提供一些操作使其能够返回姓名和住址。这些函数是否应该是const的呢?解释原因。