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

MyBatis (一)持久层框架-基础入门

目录

基础实现步骤

1 创建一个bean类

2 mapper(Dao层接口)类:

3 相关配置(在配置方法中实现)

4 测试方法:


MyBatis 是一款优秀的 持久层框架,用于简化 Java 应用与关系型数据库的交互。它通过灵活的 SQL 映射配置,将 Java 对象与数据库记录进行关联,同时保留了开发者对 SQL 的直接控制权。

MyBatis 凭借其 灵活性 和 对 SQL 的直接控制,成为许多开发者处理复杂数据库操作的首选。如果你希望避免传统 JDBC 的繁琐,同时保留 SQL 的透明度,MyBatis 是一个高效且实用的解决方案。

基础实现步骤

  1. 导入 MyBatis 依赖

  2. 配置数据源信息

  3. 编写一个 JavaBean 对应数据库一个表模型

  4. Mapper 接口与实现

    • 以前:Dao 接口 → Dao 实现 → 标注 @Repository 注解

    • 现在:Mapper 接口 → Mapper.xml 实现 → 标注 @Mapper 注解

    • (安装 MyBatisX 插件,自动为 Mapper 类生成 Mapper 文件)

    • 在 Mapper 文件中配置方法的实现 SQL

  5. 告诉 MyBatis 去哪里找 Mapper 文件

  6. 编写单元测试

项目模块初始化

1 创建一个bean类

package org.example.mybatis01.bean;

import lombok.Data;


@Data
public class Emp {
    private Integer id;
    private String name;
    private Integer age;
    private String gender;

    //生成构造方法除去id的构造方法
    public Emp(String name, Integer age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

}

2 mapper(Dao层接口)类:

package org.example.mybatis01.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.example.mybatis01.bean.Emp;

@Mapper//告诉Mybatis这是一个mapper接口
public interface EmpMapper {

    Emp getEmpById(Integer id);

}

3 相关配置(在配置方法中实现)

利用插件完善

在类名旁边按alt+回车,使用,mybatis创建一个xml文件,在资源目录下创建一个mapper文件夹

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="org.example.mybatis01.mapper.EmpMapper">
<!-- select标签代表一次查询   -->
    <select id="getEmpById" parameterType="int" resultType="org.example.mybatis01.bean.Emp">
        select * from first_tb where id = #{id}
    </select>

</mapper>

在properties中补充路径:(告诉mybatis去哪找Mapper文件)

#指定xml文件的位置(mybatis)
mybatis.mapper-locations=classpath:mapper/**.xml

4 测试方法:

直接注入接口 EmpMapper 而无需手动编写实现类,是因为 MyBatis 在底层通过动态代理自动生成了接口的实现类

MyBatis 通过动态代理生成接口的代理类(如 $Proxy 或 EnhancerByMyBatis

package org.example.mybatis01;

import org.example.mybatis01.dao.EmpMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Mybatis01ApplicationTests {

    @Autowired
    EmpMapper empMapper;
    @Test
    void contextLoads() {

        System.out.println(empMapper.getEmpById(1));
    }

}

运行结果:


http://www.kler.cn/a/590365.html

相关文章:

  • 2024下半年真题 系统架构设计师 案例分析
  • IP关联对跨境电商的影响及如何防范措施?
  • unity is running as administrator 管理员权限问题
  • 【后端开发面试题】每日 3 题(十四)
  • ORM操作(flask)
  • 基于SpringBoot + Vue 的心理健康系统
  • Matlab自学笔记四十八:各类型缺失值的创建、判断、替换、移位和处理方法
  • Spring Boot 核心知识点:依赖注入 (Dependency Injection)
  • 轻量级、高性能的 Rust HTTP 服务器库 —— Hyperlane
  • Spring Cloud 负载均衡(Ribbon)- 流量管理与服务调用优化
  • C++从入门到入土(八)——多态的原理
  • 冒泡排序:古老算法中的智慧启示
  • 「Java EE开发指南」如何用MyEclipse构建一个Web项目?(二)
  • Zabbix7.0+DeepSeek大模型实现人工智能告警分析
  • 鸿蒙路由 HMRouter 配置及使用 二
  • WebSocket与MQTT协议深度对比:选择合适的通信协议
  • 如何用Python批量将CSV文件编码转换为UTF-8并转为Excel格式?
  • 技术与情感交织的一生 (一)
  • 现代密码学 | 具有数字签名功能的安全方案
  • Spring MVC 全面解析:架构、流程与核心组件(详细)