[Solução para o problema] Mybatis plus não tem valor de retorno ao ler o banco de dados, os valores de retorno são todos nulos.

No projeto JAVA, mybatis plus é usado para ler o banco de dados MySQL. Um dos campos não tem valor de retorno. Ao verificar o SQL, há um valor normal, mas o valor de retorno final é nulo.

Processo de investigação:

Você pode primeiro adicionar a seguinte instrução ao arquivo de configuração e imprimir o SQL específico, condições de consulta, valores de retorno, etc. quando mybatis é executado no
console.yml

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

.propriedades

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

No console, posso ver que a saída SQL está normal e os campos correspondentes são retornados.Os outros campos são retornados normalmente, exceto um campo sublinhado, que é nulo.
Você pode ver que se o nome do campo da classe de entidade estiver sublinhado, o valor não poderá ser lido.

Por exemplo:

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

Você pode ver que na configuração oficial correspondente, a função de conversão de sublinhados em camelos está habilitada.
Converta o formato de sublinhado para o formato camel case.Se o valor correspondente não puder ser correspondido,nulo será retornado.

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

solução

1. Você pode optar por desligar isso no
arquivo de configuração.yml

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

.propriedades

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

2. Você pode optar diretamente por escrever uma instrução sql para obter esse valor.
Ela segue o princípio de não alterar toda a situação sem alterá-la. Afinal, também é uma instrução codificada pelos predecessores. Se você alterar um lugar, o todo o corpo será afetado. . Eu escolhi isso para evitar problemas. .

3. Modifique a classe de entidade e altere-a para camel case para correspondência normal.

Acho que você gosta

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