MyBatis Mapper 详解
引入Mapper
注意,在 Maven 中,默认情况下,Maven 要求我们将 XML 配置、properties 配置等,都放在 resources 目录下,如果我们强行放在 java 目录下,默认情况下,打包的时候这个配置文件会被自动忽略掉。对于这两个问题,我们有两种解决办法:
- 不要忽略 XML 配置:
我们可以在 pom.xml 中,添加如下配置,让 Maven 不要忽略我在 java 目录下的 XML 配置:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
- 按照 Maven 的要求来
按照 Maven 的要求来,将 xml 文件放到 resources 目录下,但是,MyBatis 中默认情况下要求,UserMapper.xml 和 UserMapper 接口,必须放在一起,所以,我们需要手动在 resources 目录下,创建一个和 UserMapper 接口相同的目录:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XXohQR1z-1677638839182)(file://C:\Users\Proya\AppData\Roaming\marktext\images\2023-03-01-09-50-38-image.png)]
Mapper 映射文件
mapper 映射文件,是 MyBatis 中最重要的部分,涉及到的细节也是非常非常多。
7.1 parameterType
这个表示输入的参数类型。
7.1.1 $
和 #
$
是直接拼接SQL,#
是使用了预编译的方式
在 JDBC 调用中,SQL 的执行,我们可以通过字符串拼接的方式来解决参数的传递问题,也可以通过占位符的方式来解决参数的传递问题。当然,这种方式也传递到 MyBatis 中,在 MyBatis 中,
$
相当于是参数拼接的方式,而#
则相当于是占位符的方式。