MyBatis:把 SQL 从代码里解放出来

JDBC 里 Java 与 SQL 缠在一起,又长又容易错。MyBatis 的思路是:SQL 仍可见、仍可控,但映射工作交给框架。

它解决什么

  • 结果集手动 getString → 映射到对象
  • 重复的获取连接/关资源
  • 参数绑定更清晰

它不是全自动魔法 ORM:你依然写 SQL,这反而适合学习期。

核心概念

  • Mapper 接口:Java 方法
  • XML 或注解:方法对应的 SQL
  • SqlSession / Spring 整合后更简单:下阶段 Boot 会接手装配

注解示例(入门直观):

public interface ArticleMapper {
    @Insert("INSERT INTO article(title, content) VALUES(#{title}, #{content})")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    int insert(Article article);

    @Select("SELECT id, title, content, created_at AS createdAt FROM article WHERE id = #{id}")
    Article findById(long id);
}

XML 方式在企业中很常见,复杂 SQL 更好维护。两者先精通一种即可。

从 JDBC 迁移的步骤

  1. 保留表结构与实体类 Article
  2. 引入 MyBatis 依赖与 JDBC 驱动
  3. 写 ArticleMapper
  4. 用测试调用 insert/findById
  5. 删除手写 JDBC 实现(或保留作对比)

YoungGc · Eden手记
学习是第一生产力。

posted @ 2026-08-26 15:19  Eden手记  阅读(6)  评论(0)    收藏  举报