首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java MyBatis 框架入門實戰:配置、映射、CRUD 完整流程

     編輯:Java 相關知識

MyBatis 是優秀的持久層框架,支援自定義 SQL、存儲過程、高級映射,幾乎消除 JDBC 樣板代碼。本文從核心概念、架構分層、依賴包到完整入門範例 (XML 配置版) 逐步講解。

一、MyBatis 核心工作流程

  1. 加載配置初始化:讀取 XML 配置與註解,解析為 MappedStatement (含參數映射、SQL、結果映射) 緩存記憶體
  2. 接收調用請求:API 層接收 SQL ID (namespace+id) 與參數對象
  3. 處理操作請求:
    • 依 ID 查找 MappedStatement
    • 解析參數生成最終 SQL 與參數值
    • 獲取連接、執行 SQL、獲取結果
    • 依結果映射轉換為目標對象
    • 釋放連接
  4. 返回處理結果

二、功能架構三層

MyBatis 架構圖

層級職責
API 接口層對外暴露操作數據庫的接口,委派給數據處理層
數據處理層SQL 查找、解析、執行、結果映射,完成單次 DB 操作
基礎支撐層連接管理、事務管理、配置加載、緩存處理等共用組件

三、核心依賴包

依賴包列表

  • mybatis-x.x.x.jar
  • MySQL Connector/J (mysql-connector-java-x.x.x.jar)
  • 日誌實現 (slf4j-api + log4j/slf4j-log4j12 等)
  • 資源文件 (mybatis-config.xml、映射文件) 放在 classpath

四、快速入門完整範例

1. 實體類 User

package com.oumyye.model;
public class User {
    private String id, name; private int age;
    // getter/setter/toString 省略
}

2. 映射文件 UserMapping.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.oumyye.mapping.UserMapping">
    <select id="getUser" parameterType="String" resultType="com.oumyye.model.User">
        select * from user where id = #{id}
    </select>
</mapper>

3. 核心配置 mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/oumyye/mapping/UserMapping.xml"/>
    </mappers>
</configuration>

4. 測試類

package test;
import org.apache.ibatis.session.*;
import org.junit.Test;
import com.oumyye.model.User;
import java.io.InputStream;

public class Tests {
    @Test
    public void test() {
        String resource = "mybatis.xml";
        InputStream is = Tests.class.getClassLoader().getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = factory.openSession();
        String statement = "com.oumyye.mapping.UserMapping.getUser";
        User user = session.selectOne(statement, "1123");
        System.out.println(user);  // User [id=1123, name=xxx, age=xx]
    }
}

5. 目錄結構

src/
├── com/oumyye/model/User.java
├── com/oumyye/mapping/UserMapping.xml
├── mybatis.xml
└── test/Tests.java

目錄結構圖

6. 執行結果

控制台輸出 User 物件

五、ORM 通用思想對照

Hibernate/MyBatis 共同模式:配置文件 → SessionFactory → Session → CRUD + 事務提交 → 關閉 Session → Mapping 文件對應 Java 對象與資料表。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved