Inicie sesión y registre el código pequeño, combine algunos de los pequeños conocimientos que ha aprendido y use para profundizar su impresión. Si hay algún comentario en este ejemplo, consulte otros blogs para más detalles.
Introducción de la función: un sistema simple de inicio de sesión y registro, que utiliza conocimientos como la base de datos SQLServer, el patrón de singleton, las expresiones regulares y el desarrollo gráfico.
1. En la interfaz de inicio de sesión, puede iniciar sesión o registrar un usuario. Registre la interfaz de usuario e ingrese la información de acuerdo con los requisitos de formato especificados en la expresión regular. Si hay algún error, vuelva a ingresar.
2. Haga clic para registrarse y primero conectarse a la base de datos SQLServer. Si la conexión es exitosa, determinará si el nombre de usuario ya existe. Si existe, se dará un aviso. De lo contrario, regístrese.
3. Iniciar interfaz. Al hacer clic en el botón de inicio de sesión, primero establezca una conexión con la base de datos. Busque en la base de datos de acuerdo con el nombre de usuario y la contraseña. Si es así, el inicio de sesión tendrá éxito. De lo contrario, dar un aviso.
4. Usando el modo Singleton, solo podemos crear un objeto de SQLServer, que guarda enormemente la sobrecarga de memoria.
Ver: https://github.com/chaohuangtianjie994/a-login-register-system
5. Según esto, se puede llevar a cabo una gran cantidad de funciones de expansión.
El código es el siguiente:
UserRegister.Java Interfaz de inicio de sesión.
paquete de paquete1; / * * Función: la interfaz de inicio de sesión tiene la función de registro y aparece la interfaz de registro. * Guardar la información registrada en la base de datos e iniciar sesión se puede realizar. *Autor: ywq */ import javax.swing. *; import java.awt.*; import java.awt.event.*; import java.sql.*; Public Class UserRegister extiende Jframe implementos ActionListener {// Defina los componentes de la interfaz de inicio de sesión JButton JB1, JB2, JB3 = NULL; Jradiobutton jrb1, jrb2 = null; Jpanel jp1, jp2, jp3 = null; JTextfield jtf = null; Jlabel jlb1, jlb2 = null; Jpasswordfield jpf = null; public static void main (string [] args) {userRegister ur = new UserRegister (); } public UserRegister () {// Crear componente // Crear componente jb1 = new JButton ("Login"); jb2 = nuevo JButton ("Registro"); jb3 = nuevo JButton ("Salir"); // establecer escuchar jb1.addactionListener (esto); jb2.addactionListener (esto); jb3.addactionListener (esto); jlb1 = new JLabel ("Nombre de usuario:"); jlb2 = new JLabel ("Password:"); jtf = new JTextfield (10); jpf = new JPasswordfield (10); jp1 = new JPanel (); jp2 = new JPanel (); jp3 = new JPanel (); JP1.Add (JLB1); JP1.Add (JTF); JP2.Add (JLB2); JP2.Add (JPF); JP3.Add (JB1); JP3.Add (JB2); JP3.Add (JB3); this.add (jp1); this.add (JP2); this.add (JP3); this.setVisible (verdadero); this.setResizable (falso); this.settitle ("Registre la interfaz de inicio de sesión"); this.setLayout (nuevo GridLayout (3,1)); this.setDefaultCloseOperation (jframe.exit_on_close); this.setBounds (300, 200, 300, 180); } @Override public void ActionPerformed (ActionEvent E) {// Escuche cada botón if (e.getActionCommand () == "Exit") {System.Exit (0); } else if (e.getActionCommand () == "Login") {// llame al método de inicio de sesión this.login (); } else if (e.getActionCommand () == "Registro") {// Llame al método de registro this.regis (); }} // Método de registro public void regis () {this.dispose (); // cerrar la interfaz actual nueva ui (); // Abra la nueva interfaz} // Método de inicio de sesión public void login () {sqlserver s = new sqlServer (); s.connectsql (); S.SQLVERIFY (JTF.GETTEXT (), JPF.GETTEXT ()); this.jtf.settext (""); this.jpf.settext (""); }} Visualización de página ui.java para registro. Las expresiones regulares se utilizan para especificar el contenido de entrada. Al registrarse, primero debe determinar si el nombre de usuario existe. Si existe, se otorga un aviso, de lo contrario, se registre.
paquete de paquete1; import java.awt.event.*; import java.awt.*; import javax.swing.*; / * * Interfaz de registro. */class ui extiende jframe implementa actionListener {// Definir componente jframe jf; Jpanel jp; Jlabel JL1, JL2, JL3, JL4; JTextfield JTF1, JTF2, JTF3, JTF4; JButton JB1, JB2; public ui () {// Inicializar componente jf = new Jframe (); jp = nuevo JPanel (); jl1 = new JLabel ("Ingrese el nombre de usuario:"); jtf1 = new JTextfield (10); jtf1.setToolTipText ("El nombre de usuario debe ser 3-6 dígitos de letras_or"); jl2 = new JLabel ("Ingrese la contraseña:"); jtf2 = new JTextfield (10); jtf2.setTooltipText ("La contraseña debe ser 6 dígitos de letras_or"); jl3 = new JLabel ("Por favor ingrese el nombre:"); jtf3 = new JTextfield (10); jtf3.settooltiptext ("El nombre debe ser 2-4 dígitos de caracteres chinos"); jl4 = new JLabel ("Ingrese el número de alumno:"); jtf4 = new JTextfield (10); JTF4.SetToolTipText ("El número de estudiante debe ser 3-6 dígitos"); jb1 = nuevo JButton ("retorno"); jb1.setTooltiptext ("Haga clic para volver a la interfaz de inicio de sesión"); jb2 = nuevo JButton ("Registro"); JB1.AddactionListener (esto); jb2.addactionListener (esto); jp.setLayout (nuevo GridLayout (5,2)); JP.Add (JL1); JP.Add (JTF1); JP.Add (JL2); JP.Add (JTF2); JP.Add (JL3); JP.Add (JTF3); JP.Add (JL4); JP.Add (JTF4); JP.Add (JB1); JP.Add (JB2); this.add (JP); this.settitle ("Interfaz de registro"); this.setBounds (200, 100, 250, 150); this.setVisible (verdadero); this.setDefaultCloseOperation (jframe.exit_on_close); // this.setResizable (falso); } public void ActionPerformed (ActionEvent e) {if (e.getActionCommand () == "return") {this.Dispose (); nuevo UserRegister (); // System.out.println ("-------"); } else if (e.getActionCommand () == "registrar") {// llamando al método de registro this.zhuce (); }} public void zhuce () {String regex1 = "// w {3,6}"; // El nombre de usuario debe ser 3-6 bits boolean flag1 = jtf1.gettext (). Matches (regex1); Cadena regex2 = "// w {6}"; // La contraseña debe ser de 6 bits boolean flag2 = jtf2.gettext (). Matches (regex2); Cadena regex3 = "[// u4e00-// u9fa5] {2,4}"; // El nombre debe ser 2-4 caracteres chinos boolean Flag3 = jtf3.gettext (). Matches (regex3); Cadena regex4 = "// d {3,6}"; // El número de alumno debe ser de 3-6 bits boolean flag4 = jtf4.gettext (). Matches (regex4); // if(jtf1.getText()==null||jtf2.getText()==null||jtf3.getText()==null||jtf4.getText()==null) if(flag1==false) { JOptionPane.showMessageDialog(null, "User name is filled incorrectly, must be 3-6 letters or numbers", "Prompt message", JOpttionPane.Warning_Message); jtf1.settext (""); } else if (flag2 == false) {joptionPane.ShowMessEdialog (nulo, "La contraseña se llena incorrectamente, debe ser 6 letras o números", "mensaje de inmediato", joptionPane.Warning_Message); jtf2.settext (""); } else if (flag3 == false) {joptionPane.showMessEdialog (nulo, "llenado de nombre incorrecto, los caracteres chinos deben ser 2-4 dígitos", "mensaje de inmediato", joptionPane.warning_message); jtf3.settext (""); } else if (flag4 == falso) {jOptionPane.ShowMessEdialog (nulo, "llenado de número de estudiante incorrecto, debe ser 3-6 dígitos", "mensaje de inmediato", joptionPane.warning_message); jtf4.settext (""); } else {// llamando al método de registro/Primero verifique si el nombre de usuario a registrar existe SQLServer ss = new SqlServer (); ss.connectsql (); ss.zhuceverify (jtf1.gettext ()); // ss.userregis (jtf1.gettext (), jtf2.gettext (), jtf3.gettext (), jtf4.gettext ()); this.jtf1.settext (""); this.jtf2.settext (""); this.jtf3.settext (""); this.jtf4.settext (""); }}} Sqlserver.java implementa varias funciones, como la conexión a la base de datos y la verificación de consultas.
paquete de paquete1; import java.sql.*; import javax.swing.JOptionPane; /** Operaciones relacionadas con bases de datos, encapsuladas por separado en clases*/ class SQLServer {Connection ct; Preparado PS; ResultSet RS; String User, pwd; // Encapsula el método que se conecta a la base de datos en un método public void ConnectSQL () {try {class.forname ("Sun.jdbc.odbc.jdbcodbcdriver"); // Cargue el controlador CT = Drivermanager.getConnection ("JDBC: ODBC: YWQ"); // Get Connection System.out.println ("Base de datos conectada ..."); } Catch (Exception e) {// TODO Auto Generado Bloque E.PrintStackTrace (); }} // Método para registrar el usuario public void userregis (String A, String B, String C, String D) {// Create Rocket Try {ps = ct.prepareStatement ("Insertar en los valores de los usuarios (?,?,?,)"); Ps.Setstring (1, a); Ps.Setstring (2, b); Ps.Setstring (3, C); Ps.Setstring (4, D); // ejecutar int i = ps.ExecuteUpdate (); if (i == 1) {joptionPane.ShowMessEdialog (nulo, "éxito registrado", "mensaje de inmediato", joptionPane.warning_message); } else {joptionPane.ShowMessEdialog (nulo, "registrar fallido", "mensaje de inmediato", jOptionPane.error_message); }} Catch (Sqlexception e) {// TODO Auto Generado Bloque E.PrintStackTrace (); }} // Método de verificación de inicio de sesión public void sqlverify (String A, String B) {try {ps = ct.preparestatement ("Seleccione * de usuarios donde username =? Y contraseña =?"); Ps.Setstring (1, a); Ps.Setstring (2, b); // Conjunto de resultados de resultados de resultados, puede comprender el conjunto de resultados como el conjunto de resultados que devuelve una fila de tabla rs = ps.executeQuery (); if (rs.next ()) {user = rs.getString (1); pwd = rs.getString (2); JOpttionPane.ShowMessEdialog (NULL, "¡Iniciar sesión con éxito!!", "Mensaje rápido", JoptionPane.Warning_Message); System.out.println ("obtuvo con éxito la contraseña y el nombre de usuario de la base de datos"); System.out.println (usuario + "/t" + pwd + "/t"); } else {joptionPane.showMessEdialog (nulo, "Nombre de usuario o contraseña es incorrecto, ¡vuelva a ingresar!", "Mensaje rápido", jOptionPane.error_message); }} Catch (SQLException e) {E.PrintStackTrace (); }} // Método de verificación de registro para determinar si el nombre de usuario ya tiene public void zhuceVerify (string a) {try {ps = ct.preparestatement ("Seleccione * de usuarios donde username =?"); // System.out.println (PS); Ps.Setstring (1, a); rs = ps.ExecuteQuery (); if (rs.next ()) {joptionPane.showMessEdialog (nulo, "este nombre de usuario ya existe", "mensaje rápido", jOptionPane.warning_message); } else {// registrar ui ui = new ui (); this.userregis (ui.jtf1.gettext (), ui.jtf2.gettext (), ui.jtf3.gettext (), ui.jtf4.gettext ()); }} Catch (SQLException e) {E.PrintStackTrace (); }}}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.