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 迁移的步骤
- 保留表结构与实体类
Article - 引入 MyBatis 依赖与 JDBC 驱动
- 写
ArticleMapper - 用测试调用
insert/findById - 删除手写 JDBC 实现(或保留作对比)
YoungGc · Eden手记
学习是第一生产力。
如发现有错误欢迎指正,欢迎交流,接受反驳。 -- by不为 :)

浙公网安备 33010602011771号