浅谈Mabatis里的<mapper>

本文详细介绍了在MyBatis框架中Mapper的三种使用方式,包括直接调用XML文件、通过getMapper方法创建代理对象并动态绑定,以及使用注解方式开发。同时,解析了<mapper>标签的不同引用方式及其注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<mapper>是<mappers>子标签

我们平常在做数据库操作的时候先要获取到sqlSession对象

String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        System.out.println(sqlSessionFactory);
        SqlSession sqlSession=sqlSessionFactory.openSession();

sqlSession操作数据有几种方法

①sqlSession.selectOne("String",Object)(这里就举一个select的例子)

User user=sqlSession.selectOne("dao.UserMapper.selectUserById", 2);

这里的dao.UserMapper.selectUserById就是mapper.xml中的 namespace+id(唯一标志符)

这个时候就与dao层没有多大关系,因为直接调用xml文件。

 

②sqlSession.getMapper()方法

UserMapper userMapper=sqlSession.getMapper(dao.UserMapper.class);  //创建出userMapper的代理对象

这里创建出UserMapper的代理对象,但是并不知道操作数据库的语言。

所以就要进行动态绑定

方法一:

就是将xml文件里<mapper namespace=" UserMapper的全类名"> 

<mapper namespace="dao.UserMapper">
    <select id="selectUserById" resultType="bean.User">  //这里的id是和Usermapper的方法名一样
        select * from user where id=#{id}
    </select>
</mapper>

 

 

 

 

③注解的方式

在Dao层里的UserMapper接口上面用注解方式开发,但是<mapper 必须使用class=“xxx”>

public interface UserMapperAnnotion {
    @Select("select * from user where id=#{id}")
    public User getUserById(int id);
}

 

<mapper 一共有三种引用的方式>

①:<mapper source=" ">  :这种引用方式是引用类路径下的引用xml文件

②:<mapper url=" "> :这种方式是使用绝对路径或者是磁盘路径,引用xml文件

③:<mapper class=" "> :这种方式是用来引用“接口”的文件,使用的时候切记将mapper.xml文件和mapper文件放在同一个包下面(猜测是会通过某种方式寻找到同名的xml文件,从而读取sql语句)

 

转载于:https://www.cnblogs.com/zzw3014/p/10311159.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值