使用mybatis-config.xml文件获取sqlsession时报错

使用SqlsessionFactory获取SqlSession对象时提示:
在这里插入图片描述

原因是因为mybatis-config.xml中的头部
在这里插入图片描述
将头部mapper改成configuration:

<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">

完整的mybatis-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>
	<!-- plugins在配置文件中的位置必须符合要求,否则会报错, 顺序如下:
	 properties?, settings?, typeAliases?, 
		typeHandlers?, objectFactory?,objectWrapperFactory?, plugins?,
		 environments?, 	databaseIdProvider?, mappers? -->

	<settings>
		<!-- sql日志 -->
		<setting value="STDOUT_LOGGING" name="logImpl" />
	</settings>

	<!-- 设置别名 -->
	<typeAliases>
		<package name="com.ssm.mf.domain" />
	</typeAliases>
	<!-- 配置分页插件 -->
	<!-- <plugins> 
		<plugin interceptor="com.github.pagehelper.PageInterceptor"> 
		设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库 
		<property name="helperDialect" value="Mysql"/> </plugin> </plugins> -->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql:/localhost:3306/ssm" />
				<property name="username" value="root" />
				<property name="password" value="123456" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<!-- 第一种:使用相对路径进行配置。示例代码如下: -->
		<!-- <mapper resource="org/mybatis/mappers/UserMapper.xml"/> -->
		<!-- 第二种:使用绝对路径进行配置。示例代码如下: -->
		<!-- <mapper url="file:///var/mappers/UserMapper.xml"/> -->
		<!-- 第三种:使用接口信息进行配置。示例代码如下: -->
		<!-- <mapper class="org.mybatis.mappers.UserMapper"/> -->
		<!-- 使用接口所在包进行配置。示例如下: -->
		<package name="com.ssm.mf" />
	</mappers>
</configuration>

测试代码

package ssm.mybatis;

import java.io.IOException;
import java.lang.reflect.Method;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

import com.ssm.mf.page.dao.PageMapper;
import com.ssm.mf.uploadfile.dao.FileMapper;

public class SqlSessionTest {
	public static void main(String [] args) throws IOException {
		Resource rs = new ClassPathResource("mybatis-config.xml");
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(rs.getInputStream());
		SqlSession session = factory.openSession();
		System.out.println(session.getMapper(FileMapper.class).getClass().getName());
		FileMapper mapper = session.getMapper(FileMapper.class);
		Method [] ms = mapper.getClass().getDeclaredMethods();
		for (Method m : ms) {
			
			System.out.println(m.getName());
			
		}
	}

}

发布了47 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42428264/article/details/91145357