【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

相关推荐
一线大码5 小时前
SpringBoot 3 和 4 的版本新特性和升级要点
java·spring boot·后端
weixin_425023005 小时前
Spring Boot 配置文件优先级详解
spring boot·后端·python
weixin_425023005 小时前
Spring Boot 实用核心技巧汇总:日期格式化、线程管控、MCP服务、AOP进阶等
java·spring boot·后端
VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue校园社团管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·课程设计
susu10830189117 小时前
使用navicat创建事件event报错You have an error in your SQL syntax
数据库·sql
oulaqiao7 小时前
幂等性——网络抖动重复支付的解决方法
sql·web app
+VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vueOA工程项目管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
独自破碎E9 小时前
Spring Boot工程启动以后,怎么将数据库中已有的固定内容打入到Redis缓存中?
数据库·spring boot·缓存
zgl_2005377910 小时前
ZGLanguage 解析SQL数据血缘 之 提取select语句中的源表名
大数据·数据库·c++·数据仓库·sql·数据库开发·etl
在风中的意志10 小时前
[数据库SQL] [leetcode-584] 584. 寻找用户推荐人
数据库·sql·leetcode