[Mybatis]Mapped Statements collection does not contain value for selectOne
學習使用 Mybatis 時,碰到 Mapped Statements collection does not contain value for selectOne 異常。
代碼如下: ``` public class TestEmp {
private SqlSession session;@Before public void before() throws IOException {SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();InputStream is = Resources.getResourceAsStream("sqlMapperConfig.xml");SqlSessionFactory factory = builder.build(is);session = factory.openSession(); }@After public void after() {session.close(); }@Test public void testSelectOne() {Emp emp = session.selectOne("selectOne");System.out.println(emp); }} ``` 調用 selectOne 方法時報錯,原因就是 Mybatis 沒有讀取到對應的方法 id,再具體一點就是在 sqlMapperConfig 文件中沒有聲明讀取對應的 XML 映射文件。
找到 configurations 標簽下的 mappers 子標簽,配置 mapper 標簽,設置 resource 屬性為對應的實體類的 XML 映射文件即可,這樣就不會報錯了。
<configuration> <properties resource="jdbc.properties"/> <settings> <setting name="logImpl" value="LOG4J"/> </settings> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!--加載mapper映射文件--> <mappers> <mapper resource="mapper/EmpMapper.xml"/> </mappers> </configuration>
總結
以上是生活随笔為你收集整理的[Mybatis]Mapped Statements collection does not contain value for selectOne的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB学习笔记/包含登陆界面的GU
- 下一篇: HTML中jquery轮播图旋转,jqu