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> 

  参考文章:http://www.laokboke.net/2012/09/25/mybatis-annotation/

目录
相关文章
|
4月前
|
SQL Java 数据库
5、Mybatis-Plus 常用注解
这篇文章详细介绍了Mybatis-Plus中常用的注解,包括解决实体类与数据库表名不一致、字段不匹配的问题,主键生成策略的配置,以及逻辑删除的实现方法。
5、Mybatis-Plus 常用注解
|
SQL XML Java
MyBatis注解基本使用
MyBatis注解是一种用于配置MyBatis映射关系和SQL操作的方式,通过在Java接口或方法上使用注解来代替XML配置,使得配置更加简洁明了。在MyBatis中,可以使用以下几个主要的注解来定义映射关系和SQL操作。
104 2
|
SQL Java 数据库连接
Mybatis使用注解方式配置
Mybatis使用注解方式配置
107 0
|
算法 数据库
MyBatis-Plus之注解
MyBatis-Plus之注解
104 0
|
XML SQL Java
【MyBatis学习笔记 五】MyBatis注解开发实现方式
【MyBatis学习笔记 五】MyBatis注解开发实现方式
132 0
|
SQL Java 数据库连接
MyBatis 注解的基本使用
MyBatis 注解的基本使用
|
XML Java 数据库连接
Spring整合Mybatis,SqlSessionTemplate方式
MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring
388 2
|
Java 数据库连接 Spring
Spring整合Mybatis,SqlSessionDaoSupport方式
SqlSessionDaoSupport 是一个抽象的支持类,用来为你提供 SqlSession。调用 getSqlSession() 方法你会得到一个 SqlSessionTemplate🙌 接口实现类:(此类继承SqlSessionDaoSupport即可)
258 2
|
算法 数据库 开发者
MyBatis-Plus(二、常用注解)
MyBatis-Plus 常用注解,如乐观锁、枚举类、逻辑删除等都可以用注解形式来实现,来简化我们的开发,提高我们的开发效率,本文将介绍mybatis-plus常见的注解及使用方法。
251 0
MyBatis-Plus(二、常用注解)