Mybatis注解学习--xxxMapper is not known to the MapperRegistry

今天晚上在学习Mybatis注解的时候,总是遇到错误Type interface com.souvi.ibatis.xxxMapper is  not known to the MapperRegistry,在网上搜索相关的解决方案时,得到的答案都不怎么详细,但知道了Mybatis注解一定要注册自己写的接口类,不然就会老报开头提到的这个错误。

下面举个例子:先看看项目的简单部署吧,如图:

先看核心文件,UserTest.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.rollen;
 
import java.io.*;
 
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 
public class UserTest {
     public static void main(String[] args) {
 
         String resource = "com/rollen/configure.xml" ;
 
         Reader reader = null ;
         try {
             reader = Resources.getResourceAsReader(resource);
         } catch (IOException e) {
             e.printStackTrace();
         }
 
         SqlSessionFactory factory = new SqlSessionFactoryBuilder()
                 .build(reader);
         factory.getConfiguration().addMapper(UserInfoMapper. class );
         SqlSession sqlSession = factory.openSession();
         try {
             UserInfoMapper userInfoMapper = sqlSession
                     .getMapper(UserInfoMapper. class );
             User user = userInfoMapper.getUser( 10 );
             System.out.println(user);
         } finally {
             sqlSession.close();
         }
     }
}

  主要要注意的是比如要注册,也就是这行代码:

?
1
factory.getConfiguration().addMapper(UserInfoMapper. class );

  UserInfoMapper.java代码如下:

?
1
2
3
4
5
6
7
8
package com.rollen;
 
import org.apache.ibatis.annotations.Select;
 
public interface UserInfoMapper {
     @Select ( "select * from user_tb where age= #{age}" )
     public User getUser( int age);
}

  user.java 代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.rollen;
 
public class User {
     private String name;
     private int age;
     /**
      * @return the name
      */
     public String getName() {
         return name;
     }
     /**
      * @param name the name to set
      */
     public void setName(String name) {
         this .name = name;
     }
     /**
      * @return the age
      */
     public int getAge() {
         return age;
     }
     /**
      * @param age the age to set
      */
     public void setAge( int age) {
         this .age = age;
     }
     /* (non-Javadoc)
      * @see java.lang.Object#toString()
      */
     @Override
     public String toString() {
         // TODO Auto-generated method stub
         return "name: " +name+ "age: " +age;
     }
     
     
}

  最后的configure.xml文件代码为:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version= "1.0" encoding= "UTF-8" ?> 
<!DOCTYPE configuration PUBLIC  
     "-//mybatis.org//DTD Config 3.0//EN" 
<configuration>
     <typeAliases>
         <typeAlias alias= "User" type= "com.rollen.User" />
     </typeAliases>
     <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/user_db" />
                 <property name= "username" value= "root" />
                 <property name= "password" value= "root" />
             </dataSource>
         </environment>
     </environments>
</configuration> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值