[Lösung des Problems] Mybatis plus hat beim Lesen der Datenbank keinen Rückgabewert. Die Rückgabewerte sind alle null.

Im JAVA-Projekt wird mybatis plus zum Lesen der MySQL-Datenbank verwendet. Eines der Felder hat keinen Rückgabewert. Bei der Überprüfung des SQL gibt es einen normalen Wert, aber der endgültige Rückgabewert ist null.

Untersuchungsprozess:

Sie können der Konfigurationsdatei zunächst die folgende Anweisung hinzufügen und die spezifischen SQL-, Abfragebedingungen, Rückgabewerte usw. ausdrucken, wenn mybatis auf der console.yml ausgeführt
wird

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

.Eigenschaften

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

In der Konsole kann ich sehen, dass die SQL-Ausgabe normal ist und die entsprechenden Felder zurückgegeben werden. Andere Felder werden normal zurückgegeben, mit Ausnahme eines unterstrichenen Felds, das null ist.
Sie können sehen, dass der Wert nicht gelesen werden kann, wenn der Feldname der Entitätsklasse unterstrichen ist.

Zum Beispiel:

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

Sie können sehen, dass in der offiziellen entsprechenden Konfiguration die Funktion zum Konvertieren von Unterstrichen in Kamele aktiviert ist.
Konvertieren Sie die Unterstrichform in das Camel-Case-Format. Wenn der entsprechende Wert nicht gefunden werden kann, wird null zurückgegeben.

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

Lösung


1. Sie können dies in der Konfigurationsdatei.yml deaktivieren

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

.Eigenschaften

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

2. Sie können direkt eine SQL-Anweisung schreiben, um diesen Wert zu erhalten.
Sie folgt dem Prinzip, nicht die gesamte Situation zu ändern, ohne sie zu ändern. Schließlich handelt es sich auch um eine durch Vorgänger codierte Anweisung. Das Ändern einer Stelle wirkt sich auf den gesamten Körper aus . . Ich habe mich dafür entschieden, um mir Ärger zu ersparen. .

3. Ändern Sie die Entitätsklasse und ändern Sie sie für den normalen Abgleich in die Kamel-Schreibweise.

Guess you like

Origin blog.csdn.net/weixin_44436677/article/details/127483445