Ошибка синтаксического анализа конфигурации SQL Mapper ... Причина: java.lang.ClassNotFoundException: не удается найти класс: - PullRequest
0 голосов
/ 15 мая 2019

Пожалуйста, помогите мне разрешить эту ошибку.

Произошла непредвиденная ошибка (тип = Внутренняя ошибка сервера, статус = 500).

Ошибка построения SqlSession. ### Ошибка может существовать в mybatis / xml / Student.xml ### Причина:

org.apache.ibatis.builder.BuilderException: Ошибка синтаксического анализа SQL Mapper Конфигурация. Причина: org.apache.ibatis.builder.BuilderException: Ошибка синтаксического анализа Mapper XML. Причина: org.apache.ibatis.builder.BuilderException: ошибка при разрешении класса. Причина: org.apache.ibatis.type.TypeException: не удалось разрешить тип псевдоним «Студент». Причина: java.lang.ClassNotFoundException: не удается найти класс: студент

и вот структура папок моего проекта enter image description here

класс моего ученика:

package mybatis.model;

public class Student {
private int id;
private String name;
private String branch;
private int percentage;
private int phone;
private String email;

    public Student(String name, String branch, int percentage, int phone, String email) {
          super();
          this.name = name;
          this.branch = branch;
          this.percentage = percentage;
          this.phone = phone;
          this.email = email;
       }
}

мой класс контроллеров:

package mybatis.controller;
import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import mybatis.model.Student;

@RestController
public class mybatisController {

    @GetMapping("/")
    public String home() throws IOException {
        Reader reader = Resources.getResourceAsReader("mybatis/xml/SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); 
        SqlSession session = sqlSessionFactory.openSession();

        //Create a new student object
        Student student = new Student("Mohammad","It", 80, 984803322, "Mohammad@gmail.com" ); 

        //Insert student data      
        Integer result = session.insert("Student.insert", student);
        return result>0 ? "inserted":"fail";
    }
}

SqlMapConfig.xml

enter image description here

Student.xml

enter image description here

1 Ответ

0 голосов
/ 15 мая 2019

Я исправил ошибку с помощью этих шагов

В Student.xml я заменяю параметр параметра StudentType на полный classPath:

<mapper namespace="mybatis.model.Student">

и

<insert id = "insert" parameterType="mybatis.model.Student">
  1. , затем сделайте то же самое в mybatisController, где вызовите идентификатор вставки маппера:

    int result = session.insert (" mybatis.model.Student .insert", студент);

...