博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis 详解(六)------通过mapper接口加载映射文件
阅读量:4949 次
发布时间:2019-06-11

本文共 2405 字,大约阅读时间需要 8 分钟。

 


  通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合是非常重要的。那么什么是通过 mapper 接口加载映射文件呢?

  我们首先看以前的做法,在全局配置文件 mybatis-configuration.xml 通过 <mappers> 标签来加载映射文件,那么如果我们项目足够大,有很多映射文件呢,难道我们每一个映射文件都这样加载吗,这样肯定是不行的,那么我们就需要使用 mapper 接口来加载映射文件

  以前的做法:

  改进做法:使用 mapper 接口来加载映射文件

1、定义 userMapper 接口

package com.ys.mapper; import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update; import com.ys.po.User; public interface UserMapper {    //根据 id 查询 user 表数据    public User selectUserById(int id) throws Exception;     //向 user 表插入一条数据    public void insertUser(User user) throws Exception;         //根据 id 修改 user 表数据    public void updateUserById(User user) throws Exception;         //根据 id 删除 user 表数据    public void deleteUserById(int id) throws Exception;}

2、在全局配置文件 mybatis-configuration.xml 文件中加载 UserMapper 接口(单个加载映射文件)

 

3、编写UserMapper.xml 文件

update user u
u.username = #{username},
u.sex = #{sex},
where id=#{id}
select LAST_INSERT_ID()
insert into user(username,sex,birthday,address) value(#{username},#{sex},#{birthday},#{address})
delete from user where id=#{id}

4、测试

//根据id查询user表数据    @Test    public void testSelectUserById() throws Exception{        //获取mapper接口        UserMapper userMapper = session.getMapper(UserMapper.class);        User user = userMapper.selectUserById(1);        System.out.println(user);        session.close();    }

5、批量加载映射文件

  

6、注意 

  1、UserMapper 接口必须要和 UserMapper.xml 文件同名且在同一个包下,也就是说 UserMapper.xml 文件中的namespace是UserMapper接口的全类名

  

2、UserMapper接口中的方法名和 UserMapper.xml 文件中定义的 id 一致

 

  3、UserMapper接口输入参数类型要和 UserMapper.xml 中定义的 parameterType 一致

 

  4、UserMapper接口返回数据类型要和 UserMapper.xml 中定义的 resultType 一致

转载于:https://www.cnblogs.com/chedahui/p/10057614.html

你可能感兴趣的文章
Kafka DockerFile
查看>>
webpackContext
查看>>
微信小程序操作数组对象
查看>>
webapi使用过滤器拦截客户端传来的参数
查看>>
vue兄弟组件的相互通讯(vuex方式)
查看>>
webapi跨域,服务器上使用session
查看>>
小程序和web画三角形
查看>>
vue兄弟组件之间的通信(bus.js)方法
查看>>
vue状态管理(vuex)
查看>>
css画圆弧
查看>>
解决mysql安装到最后一步弹出窗口无响应的方法
查看>>
C/C++误区
查看>>
POJ 3585 Accumulation Degree (算竞赛进阶习题)
查看>>
2019牛客暑期多校训练营(第一场)- B Integration
查看>>
2019牛客暑期多校训练营(第一场)- E ABBA
查看>>
2019牛客暑期多校训练营(第二场)- Kth Minimum Clique
查看>>
2019牛客暑期多校训练营(第二场)- H Second Large Rectangle
查看>>
HDU3949 XOR
查看>>
2019牛客暑期多校训练营(第四场)- sequence
查看>>
2019 Multi-University Training Contest 2 - Longest Subarray
查看>>