配置Mybatis后,创建SqlSession对象,此时程序运行到这里没有报错;但是当我配置了一个TestMapper.xml文件,将其url加载到mybatis-config.xml,再执行selectList语句,查询News对应的news表时,报了运行错误,一直查询不到结果。我的路径写的应该没问题呀,是格式还是其他的问题呢?报错内容:
Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException:
—Error building SqlSession.
—The error may exist in src/com/stu/mybatis/TestMapper.xml
—Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration.
—Cause: java.net.MalformedURLException: no protocol: src/com/stu/mybatis/TestMapper.xml
public class TestMybatis {
public static void main(String[] args) throws FileNotFoundException {
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(new FileInputStream("mybatis-config.xml"));
SqlSession sqlSession= sqlSessionFactory.openSession(true);
List<News> list = sqlSession.selectList("selectNews");
for(News news:list){
System.out.println(news);
}
}
}
<?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">
<!--我只配置了驱动,数据库地址,用户,密码和下面的mapper路径-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--加载映射文件-->
<mapper url="src/com/stu/mybatis/TestMapper.xml"/>
</mappers>
</configuration>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--配置-->
<mapper namespace="TestMapper">
<select id="selectNews" resultType="com.stu.mybatis.News">
select * from News
</select>
</mapper>