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

MyBatis 快速入门:环境搭建与基本操作指南

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射,让开发者能更灵活地处理数据库操作。本文将详细介绍 MyBatis 的环境搭建过程,并通过一个简单的入门案例演示其基本用法。

1.环境搭建

首先,我们需要搭建 MyBatis 的开发环境,以下是详细步骤:

  1. 创建 Maven 项目

    我们使用 Maven 来管理项目依赖,首先创建一个标准的 Maven 项目结构。

  2. 添加依赖库

    pom.xml 中添加 MyBatis 和 MySQL 驱动的依赖:

<dependencies><!-- MyBatis 核心依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><!-- MySQL 驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><!-- 日志框架 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.36</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version></dependency><!-- JUnit 测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency>
</dependencies>
  1. 创建数据库和表

    在 MySQL 中创建示例数据库和表:

CREATE DATABASE mybatis_demo;USE mybatis_demo;CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL,email VARCHAR(50) NOT NULL,age INT
);
  1. 配置 MyBatis

    创建 MyBatis 主配置文件 mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//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.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis_demo?useSSL=false"/><property name="username" value="root"/><property name="password" value="your_password"/></dataSource></environment></environments><!-- 映射器 --><mappers><mapper resource="mappers/UserMapper.xml"/></mappers>
</configuration>
  1. 创建实体类

    创建 User 实体类:

package com.example.entity;public class User {private Integer id;private String username;private String email;private Integer age;// 构造方法、Getter 和 Setter 略// 为了简洁,这里省略了构造方法和 getter/setter 方法// 实际开发中需要添加完整@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", email='" + email + '\'' +", age=" + age +'}';}
}
  1. 创建映射文件

    resources/mappers 目录下创建 UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper"><!-- 查询用户 --><select id="getUserById" parameterType="int" resultType="com.example.entity.User">SELECT * FROM users WHERE id = #{id}</select><!-- 添加用户 --><insert id="insertUser" parameterType="com.example.entity.User">INSERT INTO users (username, email, age)VALUES (#{username}, #{email}, #{age})</insert><!-- 更新用户 --><update id="updateUser" parameterType="com.example.entity.User">UPDATE usersSET username = #{username},email = #{email},age = #{age}WHERE id = #{id}</update><!-- 删除用户 --><delete id="deleteUser" parameterType="int">DELETE FROM users WHERE id = #{id}</delete><!-- 查询所有用户 --><select id="getAllUsers" resultType="com.example.entity.User">SELECT * FROM users</select>
</mapper>

2.MyBatis 基本操作示例

下面通过一个简单的示例演示如何使用 MyBatis 进行基本的数据库操作:

package com.example;import com.example.entity.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 java.io.InputStream;
import java.util.List;public class MyBatisExample {public static void main(String[] args) throws Exception {// 加载 MyBatis 配置文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 插入用户try (SqlSession session = sqlSessionFactory.openSession()) {// 获取映射器com.example.mapper.UserMapper userMapper = session.getMapper(com.example.mapper.UserMapper.class);// 创建新用户User newUser = new User();newUser.setUsername("testuser");newUser.setEmail("test@example.com");newUser.setAge(25);// 插入用户userMapper.insertUser(newUser);System.out.println("插入用户成功,ID: " + newUser.getId());// 提交事务session.commit();}// 查询用户try (SqlSession session = sqlSessionFactory.openSession()) {com.example.mapper.UserMapper userMapper = session.getMapper(com.example.mapper.UserMapper.class);// 根据 ID 查询用户User user = userMapper.getUserById(1);System.out.println("查询结果: " + user);}// 更新用户try (SqlSession session = sqlSessionFactory.openSession()) {com.example.mapper.UserMapper userMapper = session.getMapper(com.example.mapper.UserMapper.class);// 获取用户并更新User user = userMapper.getUserById(1);user.setAge(26);userMapper.updateUser(user);System.out.println("更新用户成功");session.commit();}// 查询所有用户try (SqlSession session = sqlSessionFactory.openSession()) {com.example.mapper.UserMapper userMapper = session.getMapper(com.example.mapper.UserMapper.class);List<User> users = userMapper.getAllUsers();System.out.println("所有用户: " + users);}// 删除用户try (SqlSession session = sqlSessionFactory.openSession()) {com.example.mapper.UserMapper userMapper = session.getMapper(com.example.mapper.UserMapper.class);userMapper.deleteUser(1);System.out.println("删除用户成功");session.commit();}}
}

3.关键代码说明

  1. SqlSessionFactory 的创建

    通过读取 MyBatis 配置文件创建 SqlSessionFactory,这是 MyBatis 的核心组件:

InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  1. 执行数据库操作

    通过 SqlSession 获取映射器接口的实现,然后调用相应的方法执行 SQL:

try (SqlSession session = sqlSessionFactory.openSession()) {UserMapper userMapper = session.getMapper(UserMapper.class);// 执行数据库操作session.commit(); // 需要提交事务
}
  1. 映射文件详解

    在映射文件中,我们定义了 SQL 语句和参数类型、返回类型:

<select id="getUserById" parameterType="int" resultType="com.example.entity.User">SELECT * FROM users WHERE id = #{id}
</select>

这里的 #{id} 是 MyBatis 的参数占位符,它会自动处理 SQL 注入问题。

4.总结

通过以上步骤,已经成功搭建了 MyBatis 的开发环境和进行基本的数据库操作。MyBatis 的核心是通过 XML 映射文件或注解将 SQL 语句与 Java 方法绑定,使数据库操作变得简单而直观。

在实际开发中,可以进一步探索 MyBatis 的高级特性,如动态 SQL、关联映射、缓存机制等,以满足更复杂的业务需求。

相关文章:

  • AI测试进入智能体时代:AutoGen 、 Coze、CrewAI 谁主沉浮?
  • Kaggle-Predict Calorie Expenditure-(回归+xgb+cat+lgb+模型融合)
  • 二十七、面向对象底层逻辑-SpringMVC九大组件之HandlerAdapter接口设计
  • 2025年5月架构真题回忆
  • 【QT】对话框dialog类封装
  • Swagger与go-zero框架生成和展示API文档详解
  • OceanBase数据库全面解析(数据定义篇DDL)
  • Rust 学习笔记:闭包
  • 【Java学习笔记】final关键字
  • 蚂蚁集团 CTO 何征宇:AGI时代,海量数据带来的质变|OceanBase 开发者大会实录
  • GitHub 趋势日报 (2025年05月25日)
  • 刷机维修进阶教程-----没有开启usb调试 如何在锁定机型的拨号界面特殊手段来开启ADB
  • 大数据学习(121)-sql重点问题
  • C++ STL Queue容器使用详解
  • uniapp-商城-69-shop(2-商品列表,点击商品展示,商品的详情, vuex的使用,rich-text使用)
  • VMware Live Recovery 和 VMware Data Recovery区别
  • Ubuntu | NVIDIA 驱动、CUDA 与 cuDNN 的安装与配置 / 常见问题及解决方法
  • RAGFlow源码安装操作过程
  • 爬虫学习-Scrape Center spa2 超简单 JS 逆向
  • 利用python爬虫获取淘宝天猫商品评论封装API实战演示
  • 做网站项目的心得/app推广赚钱
  • 文山专业网站建设报价/沈阳专业seo关键词优化
  • 建站赔补/游戏推广员一个月能赚多少
  • 辽宁省营商建设监督局网站/长沙网站定制公司
  • 有什么网站可以做设计赚钱吗/怎么联系百度推广
  • wordpress 主题库/seo网络推广优势