2025-12-16 08:37:54

MyBatis 是一款优秀的持久层框架,它在Java企业级应用中广泛使用,主要用于简化数据库访问层的开发。本文将详细解析一个MyBatis入门程序,帮助你快速掌握其基本使用方法。

一、环境准备

1. 安装必要的软件

JDK(Java Development Kit)

IDE(如IntelliJ IDEA或Eclipse)

MySQL(或其他关系型数据库)

Maven(项目构建工具)

二、创建Maven项目

首先,我们需要创建一个新的Maven项目。在 pom.xml文件中添加MyBatis和其他必要的依赖:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.example

mybatis-demo

1.0-SNAPSHOT

org.mybatis

mybatis

3.5.6

mysql

mysql-connector-java

8.0.23

org.slf4j

slf4j-api

1.7.30

org.slf4j

slf4j-simple

1.7.30

三、配置MyBatis

1. 配置MyBatis全局配置文件(mybatis-config.xml)

在 src/main/resources目录下创建 mybatis-config.xml文件,配置MyBatis的基本信息。

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

2. 配置数据库连接信息(db.properties)

在 src/main/resources目录下创建 db.properties文件,配置数据库连接信息。

jdbc.driver=com.mysql.cj.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/mybatis_demo

jdbc.username=root

jdbc.password=root

3. 配置MyBatis映射文件(UserMapper.xml)

在 src/main/resources目录下创建 UserMapper.xml文件,配置SQL映射。

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

四、创建实体类和Mapper接口

1. 创建实体类

在 src/main/java/com/example/model目录下创建 User.java文件,定义用户实体类。

package com.example.model;

public class User {

private int id;

private String name;

private String email;

// Getters and setters

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

}

2. 创建Mapper接口

在 src/main/java/com/example/mapper目录下创建 UserMapper.java文件,定义Mapper接口。

package com.example.mapper;

import com.example.model.User;

import org.apache.ibatis.annotations.Select;

public interface UserMapper {

@Select("SELECT * FROM users WHERE id = #{id}")

User selectUser(int id);

}

五、编写MyBatis工具类

在 src/main/java/com/example/utils目录下创建 MyBatisUtil.java文件,编写MyBatis工具类,用于获取SqlSessionFactory。

package com.example.utils;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtil {

private static SqlSessionFactory sqlSessionFactory;

static {

try {

String resource = "mybatis-config.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

} catch (Exception e) {

e.printStackTrace();

}

}

public static SqlSessionFactory getSqlSessionFactory() {

return sqlSessionFactory;

}

}

六、编写测试类

在 src/main/java/com/example目录下创建 Main.java文件,编写测试类,测试MyBatis的功能。

package com.example;

import com.example.mapper.UserMapper;

import com.example.model.User;

import com.example.utils.MyBatisUtil;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

public class Main {

public static void main(String[] args) {

SqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();

try (SqlSession session = sqlSessionFactory.openSession()) {

UserMapper mapper = session.getMapper(UserMapper.class);

User user = mapper.selectUser(1);

System.out.println("User: " + user.getName() + ", Email: " + user.getEmail());

}

}

}

七、运行程序

确保MySQL数据库中已经创建了 mybatis_demo数据库和 users表,并插入了测试数据:

CREATE DATABASE mybatis_demo;

USE mybatis_demo;

CREATE TABLE users (

id INT PRIMARY KEY,

name VARCHAR(50),

email VARCHAR(50)

);

INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john.doe@example.com');

运行 Main.java,如果配置正确,将输出:

User: John Doe, Email: john.doe@example.com

思维导图

graph TB

A[MyBatis入门程序] --> B[环境准备]

A --> C[Maven项目创建]

A --> D[MyBatis配置]

A --> E[实体类和Mapper接口]

A --> F[MyBatis工具类]

A --> G[测试类]

B --> H[安装必要软件]

C --> I[pom.xml配置]

D --> J[mybatis-config.xml]

D --> K[db.properties]

D --> L[UserMapper.xml]

E --> M[User实体类]

E --> N[UserMapper接口]

结论

本文详细介绍了一个MyBatis入门程序的创建过程,从环境准备、Maven项目创建、MyBatis配置、实体类和Mapper接口的定义,到工具类和测试类的编写。通过这个示例,读者可以了解MyBatis的基本使用方法,并在实际项目中应用这些知识。