Mybatis(5)Mybatis基础操作(XML)& 简单查询

观前提醒:

如果你是第一次点击这篇博客,需要你回看Mybatis系列的这个博客:
Mybatis(4)Mybatis基础操作:删除 & 修改

这篇博客的代码,都是需要自己敲一下的。
建议你看着我说的知识点,自己尝试一下,创建 Springboot项目,使用 Mybatis框架,访问数据库。

这里使用的数据库是 MySQL。
图形化工具:Navicat

sql文件获取:https://gitee.com/mrbgvhbhjv/java-ee-course
在这里插入图片描述

1.MyBatis XML配置文件

Mybatis的开发有两种方式:

  1. 注解
  2. XML

两种方式的实现步骤:
在这里插入图片描述

上⾯学习了注解的方式, 接下来我们学习XML的方式
使用Mybatis的注解方式,主要是来完成⼀些简单的增删改查功能. 如果需要实现复杂的SQL功能,建议使用XML来配置映射语句
也就是将SQL语句写在XML配置文件中。

MyBatis XML的方式需要以下两步:

  1. 配置数据库连接字符串和MyBatis
  2. 写持久层代码

配置连接字符串和MyBatis

此步骤需要进⾏两项设置,数据库连接字符串设置 和 MyBatis 的 XML ⽂件配置。

yml配置文件:

# 数据库连接配置
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

# 配置打印 MyBatis⽇志
mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    #配置驼峰⾃动转换
    map-underscore-to-camel-case: true
  # XML文件映射
  mapper-locations: classpath:mapper/**Mapper.xml

properties配置文件:

#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_test 
characterEncoding=utf8&useSSL=false
#连接数据库的用⼾名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=root
# 配置 mybatis xml 的⽂件路径,在 resources/mapper 创建所有表的 xml ⽂件
mybatis.mapper-locations=classpath:mapper/**Mapper.xml

XML文件,建议是固定的名字方式:
在这里插入图片描述
和配置文件对应上。

如果你是对 User对象,进行增删查改的操作,使用到 xml 的方式实现。
xml的文件命名,建议是:UserMapper

2. 编写第一个 XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="接口路径">
    
</mapper>

例如:

在这里插入图片描述

2.1 装插件:MybatisX

在这里插入图片描述

插件的作用:

  1. 自动实现接口

在这里插入图片描述

在这里插入图片描述

  1. 绑定接口和XML文件,支持来回跳转
    在这里插入图片描述

3. 查询:

3.1 编写 查询 语句,运行代码:

在这里插入图片描述

运行结果:

在这里插入图片描述

3.2 代码解释:

命名规则:

配置文件 和 xml文件,包名,文件名,要对应起来:

在这里插入图片描述

你也可以设置配置文件中,xml文件的命名规则,手动设置成没有限制的:

在这里插入图片描述

命名规则,目前可以随便起名字,但是,如果你以后从事开发的工作,你要根据公司的要求,遵守公司提出的命名规则。

返回结果类型:

在这里插入图片描述

3.3 报错信息归纳:

xml文件,配置文件(以 yml 为例),参数不一致,就会报错。

总结三点:

1. yml配置文件的配置信息,包名和实际包名不一致

在这里插入图片描述

2. yml配置文件的配置信息,命名规则和配置文件的不一致

在这里插入图片描述

3. xml文件的namespace接口名字 和 接口的名字,不一致

在这里插入图片描述

报错信息:

在这里插入图片描述

总结:

看到上述的报错信息,注意 xml文件,配置文件 ,接口的名字,是否相关参数都正确。

4. 查询映射解决方案

使用注解方式,实现接口时,我们讲解了三种查询映射的解决方案:

  1. 起别名
  2. @Results & @Result & @ResultMap
  3. 配置文件,驼峰自动转换(前提是遵守命名规范)

我们使用 XML 的方式,实现接口,也需要解决 查询映射 的问题,有三种方式:

  1. 起别名
  2. 使用 ResultMap标签 设置映射规则
  3. 配置文件,驼峰自动转换(前提是遵守命名规范)

演示如何 使用 ResultMap标签 设置映射规则:

如果要使用这个,建议 对象的属性 和 数据库的字段,写全,全部属性和字段都对应起来。

在这里插入图片描述

对比没有设置之前:

在这里插入图片描述

总结

总的来说,还是建议使用第三种方式,配置文件,驼峰自动转换(前提是遵守命名规范)的方式,用于 对象的属性和数据表的字段 的映射。

配置文件,自动映射,我开头的配置文件已经配置好了。

5. 总结:

使用 xml 的方式,进行 Mybatis 的开发:

  1. 配置文件,配置好 xml 的配置信息
  2. 接口的名字 和 xml文件中namespace 需要对应
  3. xml文件存在的包名,xml文件的后缀结尾名,要和配置文件中的配置信息,对应起来。

报错信息是这个:
在这里插入图片描述

看到上述的报错信息,注意 xml文件,配置文件 ,接口的名字,是否相关参数都正确。

我们使用 XML 的方式,实现接口,也需要解决 查询映射 的问题,有三种方式:

  1. 起别名
  2. 使用 ResultMap标签 设置映射规则
  3. 配置文件,驼峰自动转换(前提是遵守命名规范)

最后,如果这篇博客能帮到你的,请你点点赞,有写错了,写的不好的,欢迎评论指出,谢谢!
下一篇博客:Mybatis(6)XML方式:新增,删除,修改

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐