Mapper代理开发
Mapper入门案例
使用Mapper代理方式,必须满足以下要求:
定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
- 定义接口 名字与SQL映射文件一样
- 将接口和映射文件放同意目录下:
在resources创建Directory 命名为com/itheima/mapper,将映射文件拖进去
文件便会在同一文件夹下
设置SQL映射文件(xml)的namespace属性为Mapper接口全限定名
将映射文件中的namespace改为接口的路径名
<mapper namespace="com.itheima.mapper.UserMapper">//这里
<!-- resultType返回值类型 这里封装为User-->
<select id="selectAll" resultType="com.itheima.pojo.User">
select * from tb_user;
</select>
</mapper>
在 Mapper 接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
<mapper namespace="com.itheima.mapper.UserMapper">
<!-- resultType返回值类型 这里封装为User-->
<select id="selectAll" resultType="com.itheima.pojo.User">//这里的id和返回值 要和mapper接口中的一致
select * from tb_user;
</select>
</mapper>
mapper接口中 要返回List集合对象(查询多个用集合 查询一个用独立的对象)
List<User> selectAll()
在mybatis-config.xml中,修改加载SQL映射文件的位置
1第一种
<mappers>
<!-- 加载SQL映射文件-->
<mapper resource="com/itheima/mapper/UserMapper.xml"/>
</mappers>
2第二种 包扫描
<mappers>
<!-- 加载SQL映射文件-->
<!-- <mapper resource="com/itheima/mapper/UserMapper.xml"/>-->
<!-- mapper代理方式-->
<package name="com.itheima.mapper"/>
</mappers>
Demo
public class MybatisDemo2 {
public static void main(String[] args) throws IOException {
//1. 加载mybatis的核心配置文件,获取 SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2. 获取SqlSession对象,用它来执行sql
SqlSession sqlSession = sqlSessionFactory.openSession();
//3. 执行sql
// List<User> users = sqlSession.selectList("test.selectAll");不用这种
//--------------------------------------------------------------------------------------------用这种
//3.1获取UserMapper接口的代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> users = userMapper.selectAll();
//---------------------------------------------------------------------------------------------------
System.out.println(users);
//4. 释放资源
sqlSession.close();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏