Lösung für das Problem, dass MyBatis-Feldnamen und Attributnamen unterschiedlich sind

1. Geben Sie dem Feld einen Alias ​​und behalten Sie diesen beim Attributnamen bei.

    <! --List<Emp> getAllEmp( ); -->
    <select id="getAllEmp" resultType="Emp">
        select eid , emp_name empName , age , sex, email from t_emp
    </ select>

Beispielsweise weist die obige SQL-Anweisung emp_name einen Alias ​​auf den Attributnamen der Entitätsklasse zu, die empName entspricht.

2. Legen Sie die globale Konfiguration fest und ordnen Sie _ automatisch dem Camel Case zu (aktivieren Sie den Camel Case Matching).

Nach dem Aktivieren der Kamel-Groß-/Kleinschreibung wird _ automatisch der Kamel-Groß-/Kleinschreibung zugeordnet. Beispiel: emp_name wird empName zugeordnet. 


Wenn Sie in Spring Boot MyBatis verwenden, können Sie den application.ymlCamel-Case-Matching aktivieren, indem Sie die folgenden Parameter in der Datei festlegen:

mybatis:
  configuration:
    map-underscore-to-camel-case: true

 Nach dieser Einstellung konvertiert MyBatis die durch Unterstriche getrennten Feldnamen in der Datenbank in die CamelCase-Benennung in Java. Wenn beispielsweise ein Feld in der Datenbank den Namen trägt user_name, wird es in Java zugeordnet userName.

 3. Lösen Sie die Zuordnungsbeziehung zwischen Feldnamen und Attributnamen mithilfe von resultMap

resultMap: Benutzerdefinierte Zuordnung festlegen

  • Attribute:
    • id: stellt die eindeutige Kennung der benutzerdefinierten Zuordnung dar, die nicht wiederholt werden kann.
    • Typ: Der Typ der Entitätsklasse, der den abgefragten Daten zugeordnet werden soll
  • Untertags:
    • ID: Legen Sie die Zuordnungsbeziehung des Primärschlüssels fest
    • Ergebnis: Legen Sie die Zuordnungsbeziehung gemeinsamer Felder fest
    • Subtag-Attribute:
      • Eigenschaft: Legen Sie den Attributnamen in der Entitätsklasse in der Zuordnungsbeziehung fest
      • Spalte: Legen Sie den Feldnamen in der Datenbanktabelle in der Zuordnungsbeziehung fest
      • Assoziation: JavaBean kapselt eine Entität (viele-zu-eins);
      • Sammlung: Wird für JavaBean verwendet, um eine Sammlung zu kapseln (eins zu viele).
  • Wenn der Feldname nicht mit dem Attributnamen in der Entitätsklasse übereinstimmt, können Sie über resultMap eine benutzerdefinierte Zuordnung festlegen. Sogar Attribute mit demselben Feldnamen und Attributnamen müssen zugeordnet werden, dh alle Attribute müssen aufgelistet werden.
<resultMap id="empResultMap" type="Emp">
	<id property="eid" column="eid"></id>
	<result property="empName" column="emp_name"></result>
	<result property="age" column="age"></result>
	<result property="sex" column="sex"></result>
	<result property="email" column="email"></result>
</resultMap>
<!--List<Emp> getAllEmp();-->
<select id="getAllEmp" resultMap="empResultMap">
	select * from t_emp
</select>

Supongo que te gusta

Origin blog.csdn.net/weixin_55772633/article/details/132881383
Recomendado
Clasificación