Mybatis—入门 & (配置)SQL提示和日志输出

(一)快速入门程序

右键项目,新建module,勾选SpringBoot,上方的name就是你的项目名称:

点击next,跳转到:

勾选lombok,上方搜索SQL,

勾选MyBatis framework和MySQL Driver,点击create

在java包中新建两个包为Mapper和Pojo

在Mapper包中,新建接口UserMapper,代码如图:

在Pojo包中,新建java类User,代码如图:

在Test包下的测试类中:

复制代码
注意:
1.在测试类中创建UserMapper的实现类对象的时候,上方要加@autowired标签
2.在UserMapper接口的前面要加上@Mapper注解,在下方的方法前面加上Select注解,就不用写方法体了。
3.如果在测试类中写private UserMapper usermapper的时候,usermapper报错,则可以在java包下的SpringMybatisDemoApplication这个类中,添加Mapper.Scan这个类,然后在类前添加注解,@MapperScan("Mapper"),这样就不会标红

数据库配置:

要求有这样一张表:

在appliaction的properties文件中要配置好

xml 复制代码
spring.application.name=spring-mybatis-demo

# 配置数据库信息
spring.datasource.url=jdbc:mysql://localhost:3306/fjm03 # 这个数据库信息是在运行时程序要去找的连接,编译阶段,程序不会去找这个语句
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=1234

运行效果如下:

(二)配置SQL提示和日志输出

2.1 SQL提示词:

对图中的SQL语句右键,点击Show Context Actions,选择

选择:

表的信息会报红,因为在编译阶段IDEA不会识别数据库,因此需要在IDEA中配置好数据库,在屏幕右上角:

会弹出界面:

仅填User,Password,Database即可。

!!!记住填完后要先点击左下角的Test Connection

测试一下,因为你的Driver FIles 可能还未配置。等到Successed的提示词出现,则点击Apply,然后OK,此时sql语句的表名不会报错

2.2 日志输出:

在application.propertities中给出这样一行语句:

xml 复制代码
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

如果StdOutImpl出现报红,则是Mybatis核心文件没配置好,于是我们需要去到pom.xml中配置这样几行代码:

xml 复制代码
		<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.13</version>
        </dependency>

点击右上角的修改图标文件后,就可以正常显示,输出效果如下:

复制代码
JDBC VS Mybatis:
1.资源浪费:
JDBC频繁创建和销毁资源,造成资源浪费	
Mybatis使用数据库连接池,需用时拿出,不用时放回,避免了资源的频繁销毁
2.硬编码:
JDBC写配置信息例如数据库,用户名,密码,url的时候采取硬编码。修改后仍需编译
Mybatis封装配置信息到一个properties文件中,日后有修改需求可以直接修改
3.代码繁琐:
JDBC代码繁琐
Mybatis仅使用注解就可代替JDBC的代码,简便性高
相关推荐
Decay__19 分钟前
SQL Server 数据库全栈运维实战系列 — 合集索引(24 篇)
运维·数据库·sql·mysql·架构
Thanks_ks33 分钟前
SQL 的 GROUP BY 与聚合函数:从会写 SELECT 到会做统计
数据库·sql·mysql·group by·数据统计·聚合函数·having
Decay__9 小时前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构
笃行3509 小时前
AI数据库的库内四层结构,KingbaseES 产品拆解
数据库
我是大猴子11 小时前
redis
数据库·redis·缓存
苏宸啊13 小时前
MySQL(一)
数据库·mysql
2603_9696948514 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
这个DBA有点耶14 小时前
库内语义构建 vs 外挂向量库:业务语义缺失,才是RAG“胡说八道”的根源
数据库·mysql·aigc
kobe_OKOK_15 小时前
mysql 开启 binlog 日志
数据库·mysql
鸽芷咕16 小时前
KingbaseES 调参先看执行计划,参数是答案不是起点
数据库