您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
04-Mapper代理开发(IntelliJ IDEA拷贝路径的小技巧,mapper包扫描)
发布时间:2024-11-19 21:41:03编辑:雪饮阅读()
-
使用mapper代理
要实现Mapper代理开发,需要mapper定义文件与mapper代理接口在同一个路径下。
但是定义的配置文件一般是应该放在resources下面的,怎么会一样呢?
其实在src/java下面的包路径如com.mapper则对应resources下建立目录时候输入com/mapper,然后将mapper文件放入这个resources/com/mapper下面即可。
然后编写mapper接口代理于src/java下的包com.mapper中即可。
如
package com.mapper;
import com.User;
import java.util.List;
public interface UserMapper {
//因为返回的是用户列表,所有用List泛型,如果是单个就是实体类本身,如User
List<User> selectAll();
}
这里的返回类型必须和mapper配置文件中的resultType相同。
那么mapper中的namespace也该同步到这个mapper接口路径上。
所以现在mapper文件如:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.UserMapper">
<select id="selectAll" resultType="com.User">
select * from tb_user;
</select>
</mapper>
那么原来调用数据库数据表中数据的语句就可以修改如
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
List<User> users=userMapper.selectAll();
这样看起来就更优雅一些。
为了验证上面的mapper代理接口和mapper配置文件是在同一个目录,可以使用maven对当前module进行compile,然后compile后,在控制台中有输出类似如
[INFO] Compiling 3 source files to D:\os\mybatisMavenProject\mybatisModule1\target\classes
这些的提示,这里就是编译后类文件目录,则如我这里
D:\os\mybatisMavenProject\mybatisModule1\target\classes\com\mapper
这个目录下就可以看到UserMapper.class与UserMapper.xml。这就是证明了mapper代理接口和mapper配置文件是在同一个目录。
IntelliJ IDEA拷贝路径的小技巧
在IDEA中有时候要拷贝文件系统中的路径的时候,我们大多寻找类似Open In=>Explorer这种类似功能。
但IntelliJ IDEA中选择文件鼠标右键Copy path可以有各种路径同时显示给你复制,常用的相对的,绝对的都有,很方便
mapper的包扫描
在mybatis-config.xml中我们现在加载mapper文件的方式是指定mapper路径的
<mappers>
<mapper resource="com/mapper/UserMapper.xml"/>
</mappers>
这个示例是加载用户的Mapper,那么如果后面还有订单表,成绩表,商品表。。。
这样一个个定义太麻烦了。
所以也可以配置如这样
<mappers>
<package name="com.mapper"/>
</mappers>
这样将扫描整个com.mapper包下面的所有mapper配置文件。
关键字词:mapper