• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗的软件工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

MyBatis快速入门指南

MyBatis快速入门指南

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。本文将通过一个简单的示例,带你快速入门 MyBatis。

1. 创建数据库和表

首先,我们需要创建一个数据库和表,并插入一些测试数据。以下是 SQL 脚本:

-- 如果数据库 `db_mybatis` 存在,则删除该数据库
DROP DATABASE IF EXISTS db_mybatis;

-- 如果数据库 `db_mybatis` 不存在,则创建该数据库
CREATE DATABASE IF NOT EXISTS db_mybatis;

-- 使用数据库 `db_mybatis`
USE db_mybatis;

-- 创建表 `tb_user`,用于存储用户信息
CREATE TABLE tb_user(
    -- 用户ID,自增主键
    id INT PRIMARY KEY AUTO_INCREMENT,
    
    -- 用户名,唯一且不能为空
    username VARCHAR(32) UNIQUE NOT NULL,
    
    -- 用户密码,不能为空
    `password` VARCHAR(32) NOT NULL
);

-- 向 `tb_user` 表中插入数据
INSERT INTO tb_user VALUES(NULL,'张三','123456'),(NULL,'李四','654321');

-- 查询 `tb_user` 表中的所有数据
SELECT  * FROM tb_user;

2. 创建 Maven 模块并导入依赖

接下来,我们创建一个 Maven 模块,并导入所需的依赖。以下是 pom.xml 文件的内容:

<dependencies>
    <!-- MyBatis 核心依赖 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.5</version>
    </dependency>

    <!-- MySQL 数据库驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.32</version>
    </dependency>

    <!-- JUnit 测试框架 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13</version>
    </dependency>

    <!-- SLF4J 日志 API -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.20</version>
    </dependency>

    <!-- Logback 日志实现 -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.2.3</version>
    </dependency>
</dependencies>

3. 配置日志

为了方便调试和查看 SQL 执行情况,我们配置了 Logback 日志框架。以下是 logback.xml 文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 控制台日志输出配置 -->
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n</pattern>
        </encoder>
    </appender>

    <!-- 配置特定包的日志级别 -->
    <logger name="com.itheima" level="DEBUG" additivity="false">
        <appender-ref ref="Console"/>
    </logger>

    <!-- 全局日志级别配置 -->
    <root level="DEBUG">
        <appender-ref ref="Console"/>
    </root>
</configuration>

4. 编写 MyBatis 核心配置文件

MyBatis 的核心配置文件用于配置数据库连接信息、事务管理器等。以下是 mybatis-config.xml 文件的内容:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://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://127.0.0.1:3309/db_mybatis?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="928151"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>

5. 编写 SQL 映射文件

SQL 映射文件用于统一管理 SQL 语句,避免硬编码。以下是 UserMapper.xml 文件的内容:

<?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="test">
    <!-- 查询所有用户 -->
    <select id="selectAll" resultType="com.itcq.pojo.User">
        select * from tb_user
    </select>
</mapper>

6. 编写 POJO 类

POJO 类用于映射数据库表中的记录。以下是 User.java 文件的内容:

package com.itcq.pojo;

import java.util.Objects;

public class User {

    private Integer id;
    private String username;
    private String password;

    public User() {
    }

    public User(Integer id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        User user = (User) o;
        return Objects.equals(id, user.id) &&
                Objects.equals(username, user.username) &&
                Objects.equals(password, user.password);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, username, password);
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

7. 加载核心配置文件并执行 SQL

最后,我们编写一个测试类,加载 MyBatis 核心配置文件,获取 SqlSessionFactory 对象,并执行 SQL 语句。以下是 App.java 文件的内容:

package com.itcq;

import com.itcq.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Objects;

public class App {

    @Test
    public void test() {
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        SqlSessionFactory sqlSessionFactory = null;
        SqlSession sqlSession = null;
        try {
            // 加载 MyBatis 配置文件
            inputStream = Resources.getResourceAsStream(resource);
            // 构建 SqlSessionFactory
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            // 获取 SqlSession
            sqlSession = sqlSessionFactory.openSession();
            // 执行 SQL 查询
            List<User> users = sqlSession.selectList("test.selectAll");
            // 输出查询结果
            users.forEach(user -> System.out.println(user));
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭 SqlSession
            if (!Objects.isNull(sqlSession))
                sqlSession.close();
        }
    }
}

总结

通过以上步骤,我们完成了 MyBatis 的快速入门。我们创建了数据库和表,导入了必要的依赖,配置了日志和 MyBatis 核心文件,编写了 SQL 映射文件和 POJO 类,最后通过测试类执行了 SQL 查询。希望这篇文章能帮助你快速上手 MyBatis,并在实际项目中应用它。

posted on 2024-11-29 16:53  周政然  阅读(193)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3