[Mybatis] Ocurrió un error al anotar sql

1. Error:

Al hacer el ejercicio de Mybatis inyectando sql con anotaciones, reporté tal error.

Es normal encontrar errores, y luego aprendí el contenido que acabo de aprender hoy, revisando lo viejo y aprendiendo cosas nuevas.

La pregunta del error es la siguiente:

2. Estructura del archivo:

BookMapper.java

public interface BookMapper {
    @SelectProvider(type = BookMapperSQL.class,method = "bookSelectById")
    Book bookSelectById(int id);

}

BookMapperSQL .java

public class BookMapperSQL {
    public String bookSelectById(final int id){
        return new SQL().
                SELECT("*")
                .FROM("t_user")
                .WHERE("id=#{id}").toString();

    }
}

Luego borré todo el contenido de BookMapper.xml sin borrar el archivo, el directorio es el siguiente:

 

Archivo de configuración de Mybatis

Este mapeo con paquete y clase no tiene efecto, porque estamos haciendo una configuración de anotación

<?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>
    <properties resource="Dd.properties"/>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <typeAliases>
        <package name="org.example.po"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${db.driver}"/>
                <property name="url" value="${db.url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--        <mapper class="org.example.mapper.BookMapper"/>-->
        <package name="org.example.mapper"/>
    </mappers>
</configuration>

3. Análisis:

      Del archivo anterior, la mayoría de mis problemas deberían estar en el paquete del mapeador. Luego es para ver si la cantidad de parámetros está alineada, pero no causará tal error.Se dice que la configuración de SQL Mapper se analiza incorrectamente , por lo que me enredé en esta pregunta al principio si el contenido de BookMapperSQL. java estaba mal escrito, estudié más de uno , horas, lo volví a aprender directamente y lloré.

      Más tarde, me pregunté si el problema ocurrió porque tomé la tarea que hice antes y la modifiqué. Luego miré mi directorio de archivos anterior

       De repente recordé que cuando implementé este método de proxy dinámico anteriormente, el archivo pom.xml se configuró y especificó en el paquete del mapeador.

 ¿Es debido a la ubicación especificada y la carga del archivo que hay un problema? Así que acabo de comentar este código

, entonces se ejecuta con éxito. 

Cuando hace calor, cuando usamos anotaciones para inyectar sql, no hay necesidad de agregar este archivo al paquete del mapeador. Solo se puede decir que soy estúpido, y nadie es tan confuso como yo cuando reviso en línea.

Supongo que te gusta

Origin blog.csdn.net/m0_56233309/article/details/123561569
Recomendado
Clasificación