Masuk dan daftarkan kode kecil, gabungkan beberapa pengetahuan kecil yang telah Anda pelajari dan gunakan untuk memperdalam kesan Anda. Jika ada komentar dalam contoh ini, silakan merujuk ke blog lain untuk detailnya.
Pendahuluan Fungsi: Sistem login dan pendaftaran sederhana, menggunakan pengetahuan seperti SQLServer basis data, pola singleton, ekspresi reguler, dan pengembangan grafis.
1. Di antarmuka login, Anda dapat masuk atau mendaftarkan pengguna. Daftarkan antarmuka pengguna dan masukkan informasi sesuai dengan persyaratan format yang ditentukan dalam ekspresi reguler. Jika ada kesalahan, masukkan kembali.
2. Klik untuk mendaftar dan pertama -tama terhubung ke database SQLServer. Jika koneksi berhasil, itu akan menentukan apakah nama pengguna sudah ada. Jika ada, prompt akan diberikan. Jika tidak, daftar.
3. Antarmuka login. Saat mengklik tombol login, pertama -tama buat koneksi dengan database. Cari di database sesuai dengan nama pengguna dan kata sandi. Jika demikian, login akan berhasil. Kalau tidak, berikan prompt.
4. Menggunakan mode singleton, kita hanya dapat membuat objek seperti SQLServer, yang sangat menghemat overhead memori.
Lihat: https://github.com/chaohuangtianjie994/a-login-register-system
5. Berdasarkan ini, sejumlah besar fungsi ekspansi dapat dilakukan.
Kodenya adalah sebagai berikut:
Antarmuka login UserRegister.java.
paket paket1; / * * Fungsi: Antarmuka login memiliki fungsi pendaftaran dan antarmuka pendaftaran muncul. * Simpan informasi terdaftar di database dan login dapat dilakukan. *Penulis: ywq */ impor javax.swing. *; impor java.awt.*; impor java.awt.event.*; impor java.sql.*; Public Class UserRegister Extends JFRame mengimplementasikan ActionListener {// Tentukan komponen antarmuka login 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 () {// Buat komponen // Buat komponen jb1 = jbutton baru ("login"); jb2 = jbutton baru ("register"); jb3 = jbutton baru ("keluar"); // atur mendengarkan jb1.addactionListener (ini); jb2.addactionlistener (ini); JB3.AddactionListener (ini); jlb1 = jlabel baru ("nama pengguna:"); jlb2 = jlabel baru ("kata sandi:"); JTF = JTextField baru (10); JPF = JPasswordfield baru (10); jp1 = jpanel baru (); jp2 = jpanel baru (); jp3 = jpanel baru (); 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 (true); this.setresizable (false); this.settitle ("Register Login Interface"); this.setLayout (GridLayout baru (3,1)); this.setDefaultCloseOperation (jframe.exit_on_close); this.setbounds (300, 200, 300, 180); } @Override public void actionPerformed (actionEvent e) {// Dengarkan setiap tombol if (e.getactionCommand () == "EXIT") {System.exit (0); } lain jika (e.getactionCommand () == "login") {// panggil metode login this.login (); } lain jika (e.getactionCommand () == "register") {// hubungi metode pendaftaran this.regis (); }} // Daftarkan metode public void regis () {this.dispose (); // tutup antarmuka saat ini UI (); // buka antarmuka baru} // Metode Login Login public void () {SQLServer S = SQLServer baru (); s.connectsql (); s.sqlverify (jtf.getText (), jpf.getText ()); this.jtf.settext (""); this.jpf.settext (""); }} Tampilan Halaman Ui.java untuk pendaftaran. Ekspresi reguler digunakan untuk menentukan konten input. Saat mendaftar, Anda harus terlebih dahulu menentukan apakah ada nama pengguna. Jika ada, prompt diberikan, jika tidak mendaftar.
paket paket1; impor java.awt.event.*; impor java.awt.*; impor javax.swing.*; / * * Antarmuka pendaftaran. */Class UI memperluas JFrame mengimplementasikan ActionListener {// define Component JFrame JF; JPanel JP; Jlabel JL1, JL2, JL3, JL4; JTEXTFIELD JTF1, JTF2, JTF3, JTF4; Jbutton JB1, JB2; UI publik () {// inisialisasi komponen jf = jframe baru (); jp = jpanel baru (); jl1 = jlabel baru ("Silakan masukkan nama pengguna:"); jtf1 = JTextField baru (10); jtf1.settoolTipText ("Nama pengguna harus 3-6 digit letters_or number"); jl2 = jlabel baru ("Harap masukkan kata sandi:"); JTF2 = JTextField baru (10); jtf2.settoolTipText ("Kata sandi harus 6-digit letters_or number"); jl3 = new jlabel ("Silakan masukkan nama:"); JTF3 = JTextField baru (10); jtf3.settoolTipText ("Nama harus 2-4 digit karakter Cina"); jl4 = jlabel baru ("Silakan masukkan nomor siswa:"); JTF4 = JTextField baru (10); jtf4.settoolTipText ("Nomor siswa harus 3-6 digit"); jb1 = jbutton baru ("return"); jb1.settoolTipText ("klik saya untuk kembali ke antarmuka login"); jb2 = jbutton baru ("register"); jb1.addactionlistener (ini); jb2.addactionlistener (ini); jp.setlayout (GridLayout baru (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 ("Daftar Antarmuka"); this.setbounds (200, 100, 250, 150); this.setVisible (true); this.setDefaultCloseOperation (jframe.exit_on_close); // this.setriSizable (false); } public void actionPerformed (actionEvent e) {if (e.getactionCommand () == "return") {this.dispose (); UserRegister baru (); // System.out.println ("-------"); } lain jika (e.getactionCommand () == "register") {// Memanggil metode pendaftaran this.zhuce (); }} public void zhuce () {string regex1 = "// w {3,6}"; // Nama pengguna harus 3-6-bit boolean flag1 = jtf1.getText (). Pencocokan (regex1); String regex2 = "// w {6}"; // Kata sandi harus 6-bit boolean flag2 = jtf2.gettext (). Pencocokan (regex2); String regex3 = "[// u4e00-// u9fa5] {2,4}"; // Nama harus 2-4 karakter Cina boolean flag3 = jtf3.getText (). Kecocokan (regex3); String regex4 = "// d {3,6}"; // Jumlah siswa harus 3-6-bit boolean flag4 = jtf4.gettext (). Kecocokan (regex4); // if (jtf1.getText () == null || jtf2.getText () == null || jtf3.getText () == null || jtf4.getText () == null) if (flag1 == false) {jOptionPane.showmessagealog (null, "names" namage, "NOMPER-NOMPER," NOMPERLE, "NOMPERS," NOMBOTLOK, " Joptionpane.warning_message); jtf1.setText (""); } lain jika (flag2 == false) {jOptionPane.showmessagealog (null, "kata sandi diisi secara tidak benar, harus 6 huruf atau angka", "pesan cepat", joptionpane.warning_message); jtf2.setText (""); } lain jika (flag3 == false) {joptionpane.showmessagealog (null, "pengisian nama yang salah, karakter Cina harus 2-4 digit", "pesan cepat", joptionpane.warning_message); jtf3.setText (""); } lain if (flag4 == false) {joptionpane.showmessagealog (null, "pengisian nomor siswa yang salah, harus 3-6 digit", "pesan cepat", joptionpane.warning_message); jtf4.setText (""); } else {// Memanggil metode pendaftaran/Pertama periksa apakah nama pengguna yang akan terdaftar ada sqlserver ss = sqlserver baru (); 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 mengimplementasikan berbagai fungsi seperti koneksi ke database dan verifikasi kueri.
paket paket1; impor java.sql.*; impor javax.swing.joptionpane; /** Operasi yang terkait dengan database, dienkapsulasi secara terpisah ke dalam kelas*/ kelas SqlServer {Connection CT; Disiapkan PS; Hasil RS; Pengguna String, PWD; // Encapsulate Metode yang menghubungkan ke database ke dalam metode void public connectSQL () {coba {class.forname ("sun.jdbc.odbc.jdbcodbcdriver"); // Muat driver ct = driverManager.getConnection ("jdbc: odbc: ywq"); // Dapatkan koneksi System.out.println ("Database Terhubung ..."); } catch (Exception e) {// TODO Auto-Entoerated Catch Block E.PrintStackTrace (); }} // Metode untuk mendaftarkan pengguna public void userRegis (string a, string b, string c, string d) {// buat roket coba {ps = ct.preparestatement ("masukkan ke dalam nilai pengguna (?,?,?)"); ps.setstring (1, a); ps.setstring (2, b); ps.setstring (3, c); ps.setstring (4, d); // Jalankan int i = ps.executeUpdate (); if (i == 1) {jOptionPane.showmessageDialog (null, "terdaftar sukses", "pesan cepat", joptionpane.warning_message); } else {joptionpane.showmessagealog (null, "register gagal", "pesan cepat", joptionpane.error_message); }} catch (sqlexception e) {// TODO Auto-Eynerated Catch Block E.PrintStackTrace (); }} // Metode verifikasi login public void sqlverify (string a, string b) {coba {ps = ct.prepareStatement ("pilih * dari pengguna di mana nama pengguna =? Dan kata sandi =?"); ps.setstring (1, a); ps.setstring (2, b); // Hasil Hasil Set, Anda dapat memahami hasil sebagai set hasil yang mengembalikan baris tabel RS = pS.ExecuteQuery (); if (rs.next ()) {user = rs.getString (1); pwd = rs.getString (2); JOPTIONPANE.SHOWMESSADEIALOG (NULL, "LOGIN SUKSURE!!", "Pesan cepat", joptionpane.warning_message); System.out.println ("berhasil memperoleh kata sandi dan nama pengguna dari database"); System.out.println (user + "/t" + pwd + "/t"); } else {joptionpane.showmessageDialog (null, "nama pengguna atau kata sandi salah, mohon masukkan kembali!", "Pesan cepat", joptionpane.error_message); }} catch (sqlexception e) {e.printstacktrace (); }} // Daftarkan metode verifikasi untuk menentukan apakah nama pengguna sudah memiliki public void zhuceverify (string a) {coba {ps = ct.preparestateMen ("Pilih * dari pengguna di mana username =?"); // System.out.println (PS); ps.setstring (1, a); rs = ps.executeQuery (); if (rs.next ()) {joptionpane.showmessagealog (null, "nama pengguna ini sudah ada", "pesan cepat", joptionpane.warning_message); } else {// daftarkan ui ui = ui baru (); this.userregis (ui.jtf1.getText (), ui.jtf2.getText (), ui.jtf3.gettext (), ui.jtf4.getText ()); }} catch (sqlexception e) {e.printstacktrace (); }}}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.