MyBatis—XML配置
XML文件中配置的主要是SQL语句,是为了简化在复杂场景中编写SQL 语句而诞生的:
示例:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 上面的是固定的头文件 --><mapper namespace="Mapper.UserMapper"><!-- id与接口里的方法名一致,注意不要加(),resultType对应的是该方法对应的返回值的类型 --><!-- namespace的赋值需要看好路径。Resource文件和java文件是同一级,那么就需要把namespace这个路径追溯到那个接口文件名,同样,resultType也要追溯到返回类型的那个类的文件名 --><select id="select" resultType="Pojo.User">select * from User where id = #{id}</select>
</mapper>
文件路径:
xml文件的路径一定要和接口文件路径一致。
如果说在xml文件中已经配置好了SQL语句,则不要再给接口内的方法添加SQL注解。否则会报错,因为IDEA不知道要执行哪个语句。
总结来说可以看下图:
使用XML的场景:代码简易,少的情况下注解SQL即可,但是若涉及复杂场景,则使用XML配置
辅助配置:
(1)如果xml的路径和实际接口的路径不一致,则可以使用这行代码,让程序找到xml的实际位置。但不推荐使用,因为不美观。
在properties文件中配置如下语句:
mybatis.mapper-locations = classpath:此处是你实际存放xml文件的包名/*.xml
在字节码文件中,java包,Resource包这些字节码文件都会被放在classpath路径下。你只需要把你实际的xml文件所在的包写进去,编译的时候就会自动去找你的xml文件
(2)跳转插件:
MybatisX:安装应用后,可以点击在左侧出现的鸟形图标,跳转到这行代码的另一个位置,其实与Ctrl + 鼠标左键差不多的功能,只不过后者针对的只是变量,前者针对的是整行语句
如果在其他项目中定义了多个相同名字的包或者类,就容易在那个类下面报红,很好办,只需要把那些重复的删除就行。