1. Metodi di mappatura supportati da mybatis
I metodi di mappatura supportati da mybatis includono file mapper.xml basati su XML e classi di interfaccia mapper basate su Java. Ci sono quattro principali annotazioni dei metodi dell'interfaccia: @Insert, @Delete, @Update e @Select
2. Come mappare usando annotazioni di interfaccia
I seguenti esperimenti si basano tutti su tabelle t_user e sono strutturati come segue:
2.1 Aumento @Insert
Fondamentalmente ci sono tre schemi per questo: designazione manuale (livello applicativo), chiave primaria auto-aggiuntiva (tabella singola del livello dati) e chiave primaria di selezione (tabella multipla del livello dati).
1. Specificare manualmente la chiave primaria al livello applicativo
Il metodo manuale non tratta la chiave primaria in modo diverso e assegnerà un valore alla chiave primaria quando il livello applicativo genera l'oggetto prima dell'inserimento, che non differisce dal campo normale quando inserito.
Nell'esempio sopra, mybatis non sa quale campo sia la chiave primaria e id sia il campo della chiave primaria, ma non viene trattato diversamente.
Nota che il metodo #{username} serve a usare User come contesto corrente, così che accedendo agli attributi di User, puoi scrivere direttamente il nome dell'attributo.
2. La tabella aggiunge la chiave primaria
La chiave primaria auto-incrementante corrisponde al riempimento della chiave primaria nella configurazione XML, un esempio semplice:
Usa Option per corrispondere alle proprietà del set di tag select in XML, userGeneratordKeys per indicare che vuoi usare una chiave primaria auto-incrementante, e keyProperty per specificare il nome del campo del campo della chiave primaria.
La chiave primaria auto-incrementante utilizza le caratteristiche auto-incrementanti del database sottostante.
3. Selezionare la tonalità primaria
Seleziona la chiave primaria per generare un valore dal livello dati e usa questo valore come valore della chiave primaria.
2.2 Elimina @Delete
Quando elimini, basta scrivere la condizione nel valore dell'annotazione @Delete e restituire un tipo int come numero di record che sono stati cancellati con successo.
2.3 Cambiamento @Update
Quando modifichi, basta scrivere l'istruzione SQL nel valore del @Update e restituire un tipo int per indicare il numero di linee di record modificate.
2.4 Controlla @Select
Interrogare è un po' più complicato, perché la query riguarda come impostare i campi trovati sull'oggetto, e di solito ci sono tre modi:
1. Specificare manualmente un alias nell'istruzione SQL per corrispondere
Quando scrivi istruzioni SQL, assegna manualmente un alias a ogni campo per corrispondere agli attributi dell'oggetto, il che è adatto in situazioni in cui il nome del campo della tabella e quello dell'attributo dell'oggetto sono molto diversi e non ci sono molti campi della tabella.
2. Utilizzare la trasformazione automatica della gobba sottolineata di mybatis
mybatis ha un'opzione chiamata mapUnderscoreToCamelCase che si applica quando il nome del campo nella tabella è lo stesso del nome dell'attributo dell'oggetto, ma la differenza tra sottolineamento e scrittura a gobba.
Dopo aver configurato mapUnderscoreToCamelCase, mybatis cercherà di convertire il sottopunteggio in un "hump" quando imposta i dati trovati nel ResultSet sull'oggetto, e poi unirà il set davanti per impostare gli attributi.
Attiva la conversione:
Poi chiedi:
Guardando il risultato stampato, birth_day attributi vengono inseriti nell'oggetto:
3. Usa ResultMap
Se il nome del campo della tabella e quello dell'attributo dell'oggetto non sono molto simili, e ci sono molti campi nella tabella, ResultMap dovrebbe essere usato per l'adattamento.
@Results corrisponde al ResultMap in XML, e puoi specificare un id per esso, che può essere usato per fare riferimento altrove, ad esempio per fare riferimento ai risultati sopra:
Usa @ResultMap per fare riferimento a un ResultMap esistente, che può essere definito in Java usando annotazioni @Results o in XML usando i tag resultMap.
2.5 Codice di esempio
User.java
UserMapper.java
3. Sommario
Vantaggi dell'uso delle annotazioni di interfaccia:
1. È più comodo e veloce scrivere istruzioni di mappatura
Svantaggi nell'uso di annotazioni di interfaccia:
1. È adatto a configurazioni relativamente semplici e l'interfaccia non può essere eseguita quando è troppo complicata.
2. Non posso usare SQL dinamico, è un po' di cattivo gusto.
|