【SpringBoot】Day10-09 动态SQL-XML文件

动态SQL-XML文件的三点规范

1.XML映射文件的名称与Mapper接口名称保持一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)- 在项目开发当中,一般都是一个接口对应一份儿映射配置文件;

2.XML映射文件的namespace{命名空间}属性与Mapper接口的全限定名{包名+接口名}一致;3.XML映射文件中SQL语句的id与Mapper接口中的方法名一致,并保持返回类型一致。

  • 同包同名
    • 包名是mapper接口所在包。com.itheima.mapper
    • 包下定义一个配置文件,名字和接口名字保持一致
    • 先创建一个目录,由于是目录,用斜杠/分割,com/itheima/mapper ,创建好后包名还是com.itheima.mapper
      • 创建文件时一定不要用点,否则会报错找不到XML文件
    • 包下定义的文件,EmpMapper.xml
    • xml配置文件,上面是要有约束的,可以去mybatis中文网官方文档查找
java 复制代码
<?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">
  • namespace{命名空间}属性与Mapper接口的全限定名{包名+接口名}一致
java 复制代码
<mapper namespace="com.itheima.mapper.EmpMapper">
  • SQL语句的id与Mapper接口中的方法名一致,并保持返回类型一致。
java 复制代码
 <select id="list" resultType="com.itheima.pojo.Emp">

IntelliJ IDEA 中创建目录时 `.` 和 `/` 的区别

1. 使用 . 创建多级目录

适用场景:在 src 目录下创建包(package)时。

示例:假设我们需要在 src 目录下创建一个名为 com.example.demo 的包,可以通过以下步骤实现:

右键点击 src 目录。

选择 New -> Package。

在弹出的对话框中输入 com.example.demo。

结果:IDEA 会自动创建一个三层嵌套的目录结构 com/example/demo。

2. 使用 / 创建多级目录

适用场景:在 resources 目录下创建多级目录时。

示例:假设我们需要在 resources 目录下创建一个名为 com/example/demo 的目录结构,可以通过以下步骤实现:

右键点击 resources 目录。

选择 New -> Directory。

在弹出的对话框中输入 com/example/demo。

结果:IDEA 会自动创建一个三层嵌套的目录结构 com/example/demo。

注意事项

错误使用分隔符:如果在 resources 目录下使用 . 作为分隔符,例如输入 com.example.demo,IDEA 会将整个字符串(包括点)识别为一个单一的目录名,从而导致资源文件路径配置错误。这在使用 MyBatis 等框架时尤为常见,因为这些框架通常需要精确的资源路径配置。

标准目录结构:对于 Maven 或 Gradle 管理的项目,建议遵循标准的目录结构:

src/main/java 用于存放 Java 源码。

src/main/resources 用于存放资源文件,如配置文件、SQL 文件等。

结论

在 IntelliJ IDEA 中创建多级目录时,正确选择分隔符非常重要。. 适用于 src 目录下的包创建,而 / 则适用于 resources 目录下的多级目录创建。

原文链接:https://blog.csdn.net/wenxuankeji/article/details/143529233

相关推荐
java小白小2 天前
SpringBoot(01): 初识SpringBoot,从Spring的痛点说起
spring boot
用户3169353811832 天前
如何从零编写一个 Spring Boot Starter
spring boot
程序员晓琪3 天前
约定大于配置:基于 Java 包名自动生成 API 版本路由的最佳实践
java·spring boot·后端
Flittly3 天前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
用户3521802454754 天前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
zzzzzz3104 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
云技纵横6 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
用户3521802454757 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程
昵称为空C7 天前
手撸一个动态 SQL 执行引擎:不重启服务,在线增删改查任意数据库
spring boot·后端