Copie el código de código de la siguiente manera:
// La información básica del usuario también consta de tres columnas en la tabla USERINFO
juicio de inicio de sesión del paquete;
Usuario de clase pública {
nombre de cadena privada;
nombre de usuario de cadena privada;
inicio de sesión de cadena privada psw;
cadena pública getName() {
nombre de retorno;
}
setName público vacío (nombre de cadena) {
this.nombre = nombre;
}
cadena pública getnombre de inicio de sesión() {
devolver nombre de usuario;
}
setLoginname público vacío (nombre de inicio de sesión de cadena) {
this.loginname = nombre de inicio de sesión;
}
cadena pública getLoginpsw() {
devolver inicio de sesiónpsw;
}
setLoginpsw público vacío (String loginpsw) {
this.loginpsw = iniciar sesiónpsw;
}
}
//Pequeño bloque de código para registro e inicio de sesión
juicio de inicio de sesión del paquete;
importar java.util.Scanner;
clase pública en {
Usuario público estático getUser(){
Usuario u = nuevo Usuario();
Escáner sc = nuevo escáner (System.in);
System.out.println("Ingrese su nombre de usuario");
u.setLoginname(sc.nextLine());
System.out.println("Ingrese su contraseña");
u.setLoginpsw(sc.nextLine());
devolverte;
}
Registro de usuario estático públicoUsuario(){
Usuario u = nuevo Usuario();
Escáner sc = nuevo escáner (System.in);
System.out.println("Por favor registre el nombre de usuario");
u.setName(sc.nextLine());
System.out.println("Registre su nombre de usuario");
u.setLoginname(sc.nextLine());
System.out.println("Registre una contraseña");
u.setLoginpsw(sc.nextLine());
devolverte;
}
}
//Verifique al iniciar sesión para determinar si el nombre de inicio de sesión y la contraseña son correctos. Si son correctos, devuelva el nombre de usuario.
juicio de inicio de sesión del paquete;
importar java.sql.Conexión;
importar java.sql.DriverManager;
importar java.sql.PreparedStatement;
importar java.sql.ResultSet;
importar java.sql.SQLException;
clase pública comprobar {
usuario de verificación de vacío estático público (usuario u)
{
intentar {
Class.forName("oracle.jdbc.driver.OracleDriver");
} captura (ClassNotFoundException e) {
e.printStackTrace();
}
URL de cadena = "jdbc:oracle:thin:@localhost:1521:orcl";
Usuario de cadena = "scott";
Contraseña de cadena = "tigre";
Conexión de conexión = nula;
Conjunto de resultados rs = nulo;
Declaración preparada pst = nulo;
String sql = "Seleccione el nombre de USERINFO donde loginname =? y loginpsw =? ";
intentar {
conexión = DriverManager.getConnection(url, usuario, contraseña);
pst = conexión.prepareStatement(sql);
pst.setString(1, u.getLoginname());
pst.setString(2,u.getLoginpsw());
rs = pst.executeQuery();
mientras(rs.siguiente()){
u.setName(rs.getString(1));
}
} captura (SQLException e) {
e.printStackTrace();
}finalmente{
intentar {
rs.cerrar();
pst.cerrar();
conexión.close();
} captura (SQLException e) {
e.printStackTrace();
}
}
if(u.getName() == nulo || u.getName().isEmpty()){
System.out.println("Error al iniciar sesión");
}demás{
System.out.println("Bienvenido"+u.getName()+"Iniciar sesión");
}
}
}
// En la interfaz de registro, es necesario determinar si el nombre de inicio de sesión está duplicado. Si hay duplicados, el registro fallará. Tengo una pequeña duda, la he marcado con comentarios.
juicio de inicio de sesión del paquete;
importar java.sql.Conexión;
importar java.sql.DriverManager;
importar java.sql.PreparedStatement;
importar java.sql.ResultSet;
importar java.sql.SQLException;
importar java.sql.Statement;
registro de clase pública {
registro vacío estático públicoUsuario(Usuario u){
intentar {
Class.forName("oracle.jdbc.driver.OracleDriver");
} captura (ClassNotFoundException e) {
e.printStackTrace();
}
URL de cadena = "jdbc:oracle:thin:@localhost:1521:orcl";
Usuario de cadena = "scott";
Contraseña de cadena = "tigre";
Conexión de conexión = nula;
String sql = "Insertar en valores USERINFO (?,?,?)";
Declaración preparada pst = nulo;
//Determinar si el nombre de inicio de sesión ya existe
Declaración s = nula;
Conjunto de resultados rs = nulo;
String sql_ck = "Seleccione NOMBRE DE INICIO DE SESIÓN DE INFORMACIÓN DE USUARIO";
intentar {
conexión = DriverManager.getConnection(url, usuario, contraseña);
pst = conexión.prepareStatement(sql);
pst.setString(1, u.getName());
pst.setString(2, u.getLoginname());
pst.setString(3, u.getLoginpsw());
//Determinar si el nombre de inicio de sesión ya existe
s = conexión.createStatement();
rs = s.executeQuery(sql_ck);
while(rs.next()){// ¿Por qué aparece un índice no válido cuando se usa rs.getString(2)?
if( rs.getString("LOGINNAME").equals(u.getLoginname()) ){
System.out.println("El nombre de inicio de sesión ya existe, el registro falló");
romper;
}demás{
pst.executeUpdate();
System.out.println("Registro exitoso");
romper;
}
}
} captura (SQLException e) {
e.printStackTrace();
}finalmente{
intentar {
rs.cerrar();
pst.cerrar();
s.cerrar();
conexión.close();
} captura (SQLException e) {
e.printStackTrace();
}
}
}
}
//interfaz principal//
//La estructura de la tabla en la base de datos es así
//nombre (nombre de usuario, utilizado para mostrar),
//nombre de inicio de sesión (nombre de inicio de sesión, ID ingresado al iniciar sesión)
//loginpsw (contraseña ingresada al iniciar sesión)
juicio de inicio de sesión del paquete;
importar java.util.Scanner;
Prueba de clase pública {
público estático vacío principal (String [] argumentos) {
dedos = 0;
Escáner sc = nuevo escáner (System.in);
System.out.println("/t/tInicie sesión, presione 1/t/tRegistro, presione 2");
chos = sc.nextInt();
cambiar(chos){
caso 1: Check.checkUser(In.getUser());romper;
caso 2: Register.registUser(In.registerUser());romper;
predeterminado: System.out.println("Ingrese la opción correcta");break;
}
}
}