spring boot

一、MyBatis 是什么?

  • MyBatis 是一款优秀的持久层框架,核心作用是简化 JDBC 开发,避免手动写重复的 JDBC 代码。
  • 前身是 Apache 的开源项目 iBatis,2010 年迁移到 Google Code 并改名 MyBatis,2013 年迁移到 GitHub。
  • 官网:https://mybatis.org/mybatis-3/zh/index.html
  • 在三层架构中,MyBatis 主要作用于 DAO 持久层,负责与数据库交互。

二、使用 MyBatis 查询数据(SpringBoot 环境)

步骤 1:准备工作

  1. 创建 SpringBoot 工程(Java 17、Jar 打包方式)
  2. 创建数据库表 user,添加测试数据
  3. 创建实体类 User,与数据库表字段对应

java

运行

复制代码
public class User {
    private Integer id;
    private String name;
    private Short age;
    private Short gender;
    private String phone;
    // getter/setter/toString 省略
}

步骤 2:引入依赖并配置数据库连接

  1. 创建工程时勾选依赖:MyBatis FrameworkMySQL Driver
  2. application.properties 中配置数据库连接信息:

properties

复制代码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.username=root
spring.datasource.password=1234

步骤 3:编写 SQL 语句(注解方式)

创建 UserMapper 接口,使用 @Mapper 注解和 @Select 注解编写 SQL:

java

运行

复制代码
@Mapper
public interface UserMapper {
    @Select("select * from user")
    public List<User> list();
}

三、配置 SQL 提示(IDEA 中识别 SQL 语法)

1. 问题:默认 MyBatis 注解中的 SQL 不被识别,无语法提示

2. 解决方法:

方式 1:注入 SQL 语言
  1. 选中 @Select 注解中的 SQL 字符串
  2. 右键 → Show Context Actions(Alt+Enter)
  3. 选择 Inject language or reference → 选择 MySQL (SQL)
方式 2:配置数据库连接
  1. 打开 IDEA 右侧 Database 面板
  2. 点击 +Data SourceMySQL
  3. 填写数据库连接信息(Host、Port、User、Password、Database),测试连接成功即可

配置完成后,IDEA 会识别 SQL 中的表名、字段名,自动给出语法提示。

相关推荐
明月_清风6 小时前
加密解密系统完全指南:原理剖析与 Go 实践
后端
方也_arkling6 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮6 小时前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei116 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1126 小时前
web-第一次课后作业
java·开发语言·idea
秋97 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本7 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
DIY源码阁7 小时前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
冬奇Lab8 小时前
每日一个开源项目(第105篇):Twenty - 跳出 Salesforce 的圈套,定义现代开源 CRM
前端·后端·开源
basketball6168 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++