前提环境:SpringBoot + MyBatis Plus
问题描述:在普通类中是无法通过自动注解的方式类来使用mapper
解决办法:采用原生方式SqlSessionFactory来生成mapper
第一步:创建resources目录下下创建如下所示的配置文件config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="数据库驱动" />
<property name="url" value="jdbc:mysql://xxx:9527/demo"/>
<property name="username" value="账号" />
<property name="password" value="密码" />
</dataSource>
</environment>
</environments>
<!--使用谁的mapper就要把谁的mapper.xml文件引入进来,不引入则会报错-->
<mappers>
<mapper resource="mapper/xxxMapper.xml" />
</mappers>
</configuration>
第二步:使用SqlSessionFactory生成mapper
InputStream inputStream = Resources.getResourceAsStream("config.xml");
//读取配置文件的配置信息,利用SqlSessionFactoryBuilder创建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//利用sqlSessionFactory打开与数据库的会话
SqlSession sqlSession = sqlSessionFactory.openSession();
xxxMapper mapper = sqlSession.getMapper(xxxMapper.class);
/**
* 此处先做与数据库的交互操作,然后再关闭会话通道
*/
//关闭会话通道
sqlSession.close();