Kopieren Sie den Codecode wie folgt:
// Die grundlegenden Informationen des Benutzers sind ebenfalls drei Spalten in der USERINFO-Tabelle
Beurteilung der Paketanmeldung;
öffentliche Klasse Benutzer {
privater String-Name;
privater String-Anmeldename;
privater String loginpsw;
öffentlicher String getName() {
Rückgabename;
}
public void setName(String name) {
this.name = Name;
}
öffentlicher String getLoginname() {
Anmeldename zurückgeben;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
öffentlicher String getLoginpsw() {
return loginpsw;
}
public void setLoginpsw(String loginpsw) {
this.loginpsw = loginpsw;
}
}
//Kleiner Codeblock für Registrierung und Login
Beurteilung der Paketanmeldung;
import java.util.Scanner;
öffentliche Klasse In {
öffentlicher statischer Benutzer getUser(){
Benutzer u = neuer Benutzer();
Scanner sc = neuer Scanner(System.in);
System.out.println("Bitte geben Sie Ihren Anmeldenamen ein");
u.setLoginname(sc.nextLine());
System.out.println("Bitte geben Sie Ihr Passwort ein");
u.setLoginpsw(sc.nextLine());
gib dich zurück;
}
öffentlicher statischer Benutzer registerUser(){
Benutzer u = neuer Benutzer();
Scanner sc = neuer Scanner(System.in);
System.out.println("Bitte registrieren Sie den Benutzernamen");
u.setName(sc.nextLine());
System.out.println("Bitte registrieren Sie Ihren Anmeldenamen");
u.setLoginname(sc.nextLine());
System.out.println("Bitte registrieren Sie ein Passwort");
u.setLoginpsw(sc.nextLine());
gib dich zurück;
}
}
//Überprüfen Sie beim Anmelden, ob der Anmeldename und das Passwort korrekt sind, geben Sie den Benutzernamen zurück.
Beurteilung der Paketanmeldung;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
öffentliche Klasse prüfen {
öffentlicher statischer Void-CheckUser (Benutzer u)
{
versuchen {
Class.forName("oracle.jdbc.driver.OracleDriver");
} Catch (ClassNotFoundException e) {
e.printStackTrace();
}
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = „scott“;
String-Passwort = „Tiger“;
Verbindungsverbindung = null;
ResultSet rs = null;
PreparedStatement pst = null;
String sql = "Wählen Sie den Namen aus USERINFO aus, wobei loginname = ? und loginpsw = ? ";
versuchen {
conn = DriverManager.getConnection(URL, Benutzer, Passwort);
pst = conn.prepareStatement(sql);
pst.setString(1, u.getLoginname());
pst.setString(2,u.getLoginpsw());
rs = pst.executeQuery();
while(rs.next()){
u.setName(rs.getString(1));
}
} Catch (SQLException e) {
e.printStackTrace();
}Endlich{
versuchen {
rs.close();
pst.close();
conn.close();
} Catch (SQLException e) {
e.printStackTrace();
}
}
if(u.getName() == null || u.getName().isEmpty()){
System.out.println("Anmeldung fehlgeschlagen");
}anders{
System.out.println("Welcome"+u.getName()+"Login");
}
}
}
//In der Registrierungsschnittstelle muss festgestellt werden, ob der Anmeldename doppelt vorhanden ist. Wenn Duplikate vorhanden sind, schlägt die Registrierung fehl. Ich habe eine kleine Frage, ich habe sie mit Kommentaren markiert.
Beurteilung der Paketanmeldung;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
öffentliches Klassenregister {
public static void registerUser(User u){
versuchen {
Class.forName("oracle.jdbc.driver.OracleDriver");
} Catch (ClassNotFoundException e) {
e.printStackTrace();
}
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = „scott“;
String-Passwort = „Tiger“;
Verbindungsverbindung = null;
String sql = "In USERINFO-Werte einfügen (?,?,?)";
PreparedStatement pst = null;
//Stellen Sie fest, ob der Anmeldename bereits vorhanden ist
Aussage s = null;
ResultSet rs = null;
String sql_ck = „Wählen Sie LOGINNAME FROM USERINFO“;
versuchen {
conn = DriverManager.getConnection(URL, Benutzer, Passwort);
pst = conn.prepareStatement(sql);
pst.setString(1, u.getName());
pst.setString(2, u.getLoginname());
pst.setString(3, u.getLoginpsw());
//Stellen Sie fest, ob der Anmeldename bereits vorhanden ist
s = conn.createStatement();
rs = s.executeQuery(sql_ck);
while(rs.next()){//Warum wird bei Verwendung von rs.getString(2) ein ungültiger Index angezeigt?
if( rs.getString("LOGINNAME").equals(u.getLoginname()) ){
System.out.println("Anmeldename existiert bereits, Registrierung fehlgeschlagen");
brechen;
}anders{
pst.executeUpdate();
System.out.println("Registrierung erfolgreich");
brechen;
}
}
} Catch (SQLException e) {
e.printStackTrace();
}Endlich{
versuchen {
rs.close();
pst.close();
s.close();
conn.close();
} Catch (SQLException e) {
e.printStackTrace();
}
}
}
}
//Hauptschnittstelle//
//Die Struktur der Tabelle in der Datenbank ist wie folgt
//name (Benutzername, wird zur Anzeige verwendet),
//loginname (Anmeldename, die beim Anmelden eingegebene ID)
//loginpsw (bei der Anmeldung eingegebenes Passwort)
Beurteilung der Paketanmeldung;
import java.util.Scanner;
öffentlicher Klassentest {
public static void main(String[] args) {
intchos = 0;
Scanner sc = neuer Scanner(System.in);
System.out.println("/t/tLogin bitte drücken Sie 1/t/tRegistration bitte drücken Sie 2");
chos = sc.nextInt();
switch(chos){
Fall 1: Check.checkUser(In.getUser());break;
Fall 2: Register.registUser(In.registerUser());break;
Standard: System.out.println("Bitte geben Sie die richtige Auswahl ein");break;
}
}
}