Ich verwende MySQL mit Spring JDBC-Vorlage für meine Webanwendung. Ich muss eine Telefonnummer mit nur Ziffern (10) speichern. Ich bin ein wenig verwirrt über Datentyp mit Datentyp.
Strings & VARCHAR.
Versuchen Sie nicht, Telefonnummern als tatsächliche Zahlen zu speichern. Das würde die Formatierung ruinieren, vorangestellte "0" entfernen und andere unerwünschte Dinge.
Wenn Sie möchten, können Sie die Benutzereingaben auf numerische Werte beschränken, aber selbst in diesem Fall sollten Sie die gespeicherten Daten als Zeichen/Strings und nicht als Zahlen speichern.
Informieren Sie sich über die Welt und die unterschiedlichen Längen und Formatierungen von Zahlen, bevor Sie versuchen, irgendwelche Längenbeschränkungen, Validierungen oder Masken (z. B. XXX-XXXX-XX) zu implementieren.
Nicht numerische Zeichen können in Telefonnummern gültig sein. Ein gutes Beispiel dafür ist "+" als Ersatz für "00" am Anfang einer internationalen Nummer.
Bearbeitet nach einem Gespräch in den Kommentaren:
varchar
Zeichenfolge
Eine einfache Regex. Siehe: https://stackoverflow.com/questions/15111420/how-to-check-if-a-string-contains-only-digits-in-java. Verwenden Sie javax.constraints.Pattern.