首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分析mybatis中的SQL映射器配置时出错

分析mybatis中的SQL映射器配置时出错
EN

Stack Overflow用户
提问于 2021-06-03 22:30:27
回答 1查看 301关注 0票数 0

我在servlet中使用mybatis框架,mybatis-config.xml文件无法找到Student_mapper类。我应用了所有路径,包括包名和排除它,还使用了mybatis-config.xml中的元素,但它不起作用。我仍然收到相同的错误。

代码语言:javascript
运行
复制
Error building SqlSession.The error may exist in SQL Mapper Configuration 
Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.ClassNotFoundException: Cannot find class: mybatis/Student_mapper
    org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
    org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:52)
    org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:36)
    mybatis.Serv.doGet(Serv.java:49)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

下面是我的mybatis-config.xml文件

代码语言:javascript
运行
复制
<?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>


    <typeAliases>
        <typeAlias type="mybatis.Student_mapper"
            alias="Student_mapper" />
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="org.postgresql.Driver" />
                <property name="url"
                    value="jdbc:postgresql://localhost:5432/chitra" />
                <property name="username" value="postgres" />
                <property name="password" value="admin" />
            </dataSource>
        </environment>
    </environments>

    <mappers>

        <mapper class="mybatis/Student_mapper" />
    </mappers>
</configuration>

这是我的Student_mapper界面

代码语言:javascript
运行
复制
package mybatis;

import java.util.List;
import org.apache.ibatis.annotations.*;
public interface Student_mapper 
{
   final String getAll = "SELECT * FROM STUDENT"; 
   final String getById = "SELECT * FROM STUDENT WHERE ID = #{id}";
   final String deleteById = "DELETE from STUDENT WHERE ID = #{id}";
   final String insert = "INSERT INTO STUDENT (ID,NAME, COURSE, ROLL) VALUES (#{id},#{name}, #{course}, #{roll})";
   final String update = "UPDATE STUDENT SET NAME = #{name}, COURSE = #{course}, ROLL = #{roll} WHERE ID = #{id}";
   @Select(getAll)
   @Results(value = {
      @Result(property = "id", column = "ID"),
      @Result(property = "name", column = "NAME"),
      @Result(property = "course", column = "COURSE"),
      @Result(property = "roll", column = "ROLL")
   })
   List<Student> getAll();
   

   @Select(getById)
   @Results(value = {
      @Result(property = "id", column = "ID"),
      @Result(property = "name", column = "NAME"),
      @Result(property = "course", column = "COURSE"),
      @Result(property = "roll", column = "ROLL")
   })
   Student getById(int id);
   
   @Update(update)
   void update(Student student);
   @Delete(deleteById)
   void delete(int id);
   @Insert(insert)
   //@Options(useGeneratedKeys = true, keyProperty = "id")
   void insert(Student student);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-03 23:54:26

映射器类必须是有效的Java类名。将mybatis-config.xml更改为以下内容:

代码语言:javascript
运行
复制
  <mappers>
    <mapper class="mybatis.Student_mapper" />
  </mappers>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67823385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档