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 的文档。