[Solución al problema] Mybatis plus no tiene valor de retorno al leer la base de datos, los valores de retorno son todos nulos.

En el proyecto JAVA se usa mybatis plus para leer la base de datos MySQL, uno de los campos no tiene valor de retorno, al verificar el SQL, hay un valor normal, pero el valor de retorno final es nulo.

Proceso de investigación:

Primero puede agregar la siguiente declaración al archivo de configuración y puede imprimir el SQL específico, las condiciones de consulta, los valores de retorno, etc. cuando mybatis se ejecuta en console.yml
.

mybatis-plus:
    configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

.propiedades

mybatis-plus.configuration.log-impl = org.apache.ibatis.logging.stdout.StdOutImpl

En la consola, puedo ver que la salida de SQL es normal y se devuelven los campos correspondientes. Otros campos se devuelven normalmente, excepto un campo subrayado, que es nulo.
Puede ver que si el nombre del campo de clase de entidad está subrayado, el valor no se puede leer.

Por ejemplo:

@TableName(value = "table")
public class Info {
    
    
    @TableField(value = "book_name")
    private String book_name;
}

Puede ver que en la configuración oficial correspondiente, la función de convertir guiones bajos a camellos está habilitada.
Convierta el formato de guión bajo al formato de mayúsculas y minúsculas. Si el valor correspondiente no puede coincidir, se devolverá nulo.

MybatisConfiguration configuration = new MybatisConfiguration();
configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
configuration.setJdbcTypeForNull(JdbcType.NULL);
//下划线转为驼峰
configuration.setMapUnderscoreToCamelCase(true);
sqlSessionFactory.setConfiguration(configuration);

solución

1. Puede optar por desactivar esto en el
archivo de configuración.yml

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: false # 数据库下划线自动转驼峰标示关闭

.propiedades

mybatis.configuration.map-underscore-to-camel-case = false

2. Puede optar directamente por escribir una declaración SQL para obtener este valor.
Sigue el principio de no cambiar toda la situación sin cambiarla. Después de todo, también es una declaración codificada por los predecesores. Si cambia un lugar, el todo el cuerpo se verá afectado. . Elegí esto para evitar problemas. .

3. Modifique la clase de entidad y cámbiela a mayúsculas y minúsculas para una coincidencia normal.

Supongo que te gusta

Origin blog.csdn.net/weixin_44436677/article/details/127483445
Recomendado
Clasificación