c语言编程笔录

首页 >   > 笔记大全

笔记大全

spring mybatis获取mapper的方式有哪些

更新时间:2023-10-26
在 Spring MyBatis 中,获取 Mapper 的方式有多种,其中包括使用 Mapper 接口和使用 SqlSessionFactory。下面分别介绍这两种方式。

使用 Mapper 接口

使用 Mapper 接口是 Spring Mybatis 中获取 Mapper 的常用方式。具体实现如下:

public interface UserMapper {
    User selectUserById(Integer id);
}
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    public User getUserById(Integer id) {
        return userMapper.selectUserById(id);
    }
}
在上述代码中,通过 @Autowired 注解将 UserMapper 注入到 UserServiceImpl 中,即可在 UserServiceImpl 中直接使用 UserMapper。在实际使用中,也可以使用 MapperScannerConfigurer 配置扫描 Mapper 接口。

使用 SqlSessionFactory

使用 SqlSessionFactory 是 Spring Mybatis 中获取 Mapper 的另一种方式。具体实现如下:

@Autowire
private SqlSessionFactory sqlSessionFactory;

public User getUserById(Integer id) {
    SqlSession sqlSession = sqlSessionFactory.openSession();
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    User user = userMapper.selectUserById(id);
    sqlSession.close();
    return user;
}
在上述代码中,首先通过 @Autowired 注入 SqlSessionFactory,获取 SqlSession 实例,然后通过 getMapper 方法获取 Mapper 接口,最后使用 userMapper 实例执行查询语句。需要注意的是,在使用完毕后需要关闭 SqlSession。 通过上述方式,可以方便地使用 Spring Mybatis 获取 Mapper。使用 Mapper 接口方式可以降低代码耦合度,同时也可以使用接口的多态性方便地实现不同实现的切换;使用 SqlSessionFactory 则可以更加灵活地控制 Mapper 的获取,例如可以在一个方法中获取多个 Mapper 等。详细的代码和配置示例可以参考 Spring Mybatis 的文档。