เข้าสู่ระบบและลงทะเบียนรหัสเล็ก ๆ รวมความรู้เล็ก ๆ ที่คุณได้เรียนรู้และใช้เพื่อเพิ่มความประทับใจให้ลึกซึ้งยิ่งขึ้น หากมีความคิดเห็นใด ๆ ในตัวอย่างนี้โปรดดูบล็อกอื่น ๆ สำหรับรายละเอียด
การแนะนำฟังก์ชั่น: ระบบการเข้าสู่ระบบและการลงทะเบียนอย่างง่ายโดยใช้ความรู้เช่นฐานข้อมูล SQLServer, รูปแบบ Singleton, การแสดงออกปกติและการพัฒนากราฟิก
1. ในอินเทอร์เฟซเข้าสู่ระบบคุณสามารถเข้าสู่ระบบหรือลงทะเบียนผู้ใช้ ลงทะเบียนส่วนต่อประสานผู้ใช้และป้อนข้อมูลตามข้อกำหนดรูปแบบที่ระบุไว้ในนิพจน์ทั่วไป หากมีข้อผิดพลาดใด ๆ ให้กลับมาอีกครั้ง
2. คลิกเพื่อลงทะเบียนและเชื่อมต่อกับฐานข้อมูล SQLServer ก่อน หากการเชื่อมต่อสำเร็จจะมีการพิจารณาว่าชื่อผู้ใช้มีอยู่แล้วหรือไม่ หากมีอยู่จะมีการแจ้งเตือน มิฉะนั้นลงทะเบียน
3. เข้าสู่ระบบอินเตอร์เฟส เมื่อคลิกปุ่มเข้าสู่ระบบก่อนอื่นให้สร้างการเชื่อมต่อกับฐานข้อมูล ค้นหาในฐานข้อมูลตามชื่อผู้ใช้และรหัสผ่าน ถ้าเป็นเช่นนั้นการเข้าสู่ระบบจะประสบความสำเร็จ มิฉะนั้นให้พรอมต์
4. การใช้โหมด Singleton เราสามารถสร้างวัตถุของ SQLServer-like เท่านั้นซึ่งจะช่วยประหยัดค่าใช้จ่ายหน่วยความจำได้อย่างมาก
ดู: https://github.com/chaohuangtianjie994/a-login-register-system
5. ขึ้นอยู่กับสิ่งนี้สามารถดำเนินการฟังก์ชั่นการขยายจำนวนมากได้
รหัสมีดังนี้:
userregister.java อินเตอร์เฟสเข้าสู่ระบบ
แพ็คเกจแพคเกจ 1; / * * ฟังก์ชั่น: อินเทอร์เฟซเข้าสู่ระบบมีฟังก์ชั่นการลงทะเบียนและอินเตอร์เฟสการลงทะเบียนจะปรากฏขึ้น * บันทึกข้อมูลที่ลงทะเบียนในฐานข้อมูลและเข้าสู่ระบบสามารถทำได้ *ผู้แต่ง: ywq */ นำเข้า Javax.swing. *; นำเข้า Java.awt.*; นำเข้า java.awt.event.*; นำเข้า Java.sql.*; Userregister ระดับสาธารณะขยาย JFrame ใช้ ActionListener {// กำหนดส่วนประกอบของอินเตอร์เฟสเข้าสู่ระบบ JButton JB1, JB2, JB3 = NULL; JRADIOBUTTON JRB1, JRB2 = NULL; JPANEL JP1, JP2, JP3 = NULL; jtextfield jtf = null; Jlabel Jlb1, Jlb2 = null; jPasswordfield jpf = null; โมฆะคงที่สาธารณะหลัก (สตริง [] args) {userregister ur = userregister ใหม่ (); } public userRegister () {// สร้างส่วนประกอบ // สร้างส่วนประกอบ jb1 = new JButton ("เข้าสู่ระบบ"); JB2 = new JButton ("ลงทะเบียน"); jb3 = new JButton ("ออก"); // ตั้งค่าการฟัง jb1.addactionListener (นี่); jb2.addactionListener (นี้); JB3.AddactionListener (นี่); jlb1 = new jlabel ("ชื่อผู้ใช้:"); jlb2 = new jlabel ("รหัสผ่าน:"); jtf = ใหม่ jtextfield (10); jpf = ใหม่ 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 (จริง); this.setResizable (เท็จ); this.settitle ("ลงทะเบียนอินเตอร์เฟสเข้าสู่ระบบ"); this.setLayout (ใหม่ gridlayout (3,1)); this.setDefaultCloseOperation (jframe.exit_on_close); this.setbounds (300, 200, 300, 180); } @Override โมฆะสาธารณะ ActionPerformed (ActionEvent E) {// ฟังแต่ละปุ่มถ้า (e.getActionCommand () == "ออก") {System.Exit (0); } อื่นถ้า (e.getActionCommand () == "เข้าสู่ระบบ") {// เรียกวิธีการเข้าสู่ระบบ this.login (); } อื่นถ้า (e.getActionCommand () == "ลงทะเบียน") {// เรียกวิธีการลงทะเบียน this.regis (); }} // วิธีการลงทะเบียนโมฆะสาธารณะ regis () {this.dispose (); // ปิดอินเทอร์เฟซปัจจุบัน ui ใหม่ (); // เปิดอินเทอร์เฟซใหม่} // วิธีการเข้าสู่ระบบโมฆะล็อกอินสาธารณะ () {SQLServer S = ใหม่ SQLServer (); s.connectsql (); S.SQLverify (jtf.getText (), jpf.getText ()); this.jtf.settext (""); this.jpf.settext (""); - UI.java หน้าแสดงการลงทะเบียน นิพจน์ทั่วไปใช้เพื่อระบุเนื้อหาอินพุต เมื่อลงทะเบียนคุณต้องพิจารณาก่อนว่าชื่อผู้ใช้มีอยู่หรือไม่ หากมีอยู่จะมีการแจ้งเตือนมิฉะนั้นลงทะเบียน
แพ็คเกจแพคเกจ 1; นำเข้า java.awt.event.*; นำเข้า Java.awt.*; นำเข้า Javax.swing.*; / * * อินเทอร์เฟซการลงทะเบียน */คลาส UI ขยาย JFrame ใช้ ActionListener {// กำหนดส่วนประกอบ jframe jf; JPanel JP; Jlabel JL1, JL2, JL3, JL4; JTextfield JTF1, JTF2, JTF3, JTF4; Jbutton JB1, JB2; public ui () {// เริ่มต้นส่วนประกอบ jf = new JFrame (); jp = new JPanel (); jl1 = new Jlabel ("โปรดป้อนชื่อผู้ใช้:"); jtf1 = ใหม่ jtextfield (10); jtf1.settooltiptext ("ชื่อผู้ใช้ต้องเป็นหมายเลขตัวอักษร 3-6 หลัก _or"); jl2 = new Jlabel ("โปรดป้อนรหัสผ่าน:"); jtf2 = ใหม่ jtextfield (10); jtf2.settooltiptext ("รหัสผ่านต้องเป็นหมายเลขตัวอักษร 6 หลัก _or"); jl3 = new jlabel ("โปรดป้อนชื่อ:"); jtf3 = ใหม่ jtextfield (10); jtf3.settooltiptext ("ชื่อต้องเป็น 2-4 หลักของอักขระจีน"); jl4 = new Jlabel ("โปรดป้อนหมายเลขนักเรียน:"); jtf4 = ใหม่ jtextfield (10); jtf4.settooltiptext ("หมายเลขนักเรียนต้องเป็น 3-6 หลัก"); jb1 = new jbutton ("return"); jb1.settooltiptext ("คลิกฉันเพื่อกลับไปที่อินเตอร์เฟสเข้าสู่ระบบ"); JB2 = new JButton ("ลงทะเบียน"); jb1.addactionListener (นี้); jb2.addactionListener (นี้); jp.setLayout (ใหม่ 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 ("การลงทะเบียนอินเทอร์เฟซ"); this.setbounds (200, 100, 250, 150); this.setVisible (จริง); this.setDefaultCloseOperation (jframe.exit_on_close); // this.setResizable (เท็จ); } โมฆะสาธารณะ ActionPerformed (ActionEvent E) {ถ้า (e.getActionCommand () == "return") {this.dispose (); ใหม่ userregister (); // system.out.println ("-------"); } อื่นถ้า (e.getActionCommand () == "ลงทะเบียน") {// การเรียกใช้วิธีการลงทะเบียน this.zhuce (); }} โมฆะสาธารณะ zhuce () {String regex1 = "// w {3,6}"; // ชื่อผู้ใช้จะต้องเป็น 3-6 บิตบูลีน Flag1 = jtf1.getText (). การจับคู่ (regex1); String regex2 = "// w {6}"; // รหัสผ่านจะต้องเป็น 6-bit boolean flag2 = jtf2.getText (). การจับคู่ (regex2); String regex3 = "[// u4e00-// u9fa5] {2,4}"; // ชื่อต้องเป็น 2-4 อักขระจีนบูลีน Flag3 = jtf3.getText (). การจับคู่ (regex3); String regex4 = "// d {3,6}"; // หมายเลขนักเรียนต้องเป็นธงบูลีน 3-6 บิต 4 = jtf4.getText (). การจับคู่ (regex4); // ถ้า (jtf1.getText () == null || jtf2.getText () == null || jtf3.getText () == null || jtf4.getText () == null) ถ้า (flag1 == false) joptionpane.warning_message); jtf1.settext (""); } อื่นถ้า (flag2 == false) {joptionpane.showMessagedialog (null, "รหัสผ่านถูกกรอกไม่ถูกต้องต้องเป็น 6 ตัวอักษรหรือตัวเลข", "ข้อความแจ้ง", joptionpane.warning_message); jtf2.settext (""); } อื่นถ้า (flag3 == false) {joptionpane.showMessagedialog (null, "การเติมชื่อที่ไม่ถูกต้อง, อักขระจีนต้องเป็น 2-4 หลัก", "ข้อความแจ้ง", joptionpane.warning_message); jtf3.settext (""); } อื่นถ้า (flag4 == false) {joptionpane.showMessagedialog (null, "การเติมหมายเลขนักเรียนที่ไม่ถูกต้องต้องเป็น 3-6 หลัก", "ข้อความแจ้ง", joptionpane.warning_message); jtf4.settext (""); } else {// การเรียกใช้วิธีการลงทะเบียน/ตรวจสอบก่อนว่าชื่อผู้ใช้ที่จะลงทะเบียนมีอยู่มี SQLServer SS = ใหม่ 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 ใช้ฟังก์ชั่นต่าง ๆ เช่นการเชื่อมต่อกับฐานข้อมูลและการตรวจสอบการสืบค้น
แพ็คเกจแพคเกจ 1; นำเข้า Java.sql.*; นำเข้า Javax.swing.joptionpane; /** การดำเนินการที่เกี่ยวข้องกับฐานข้อมูล, ห่อหุ้มแยกต่างหากลงในคลาส*/ คลาส SQLServer {การเชื่อมต่อ CT; PreparedStatement PS; Resultset Rs; ผู้ใช้สตริง, PWD; // ห่อหุ้มวิธีการที่เชื่อมต่อกับฐานข้อมูลลงในวิธีการสาธารณะโมฆะ connectsql () {ลอง {class.forname ("sun.jdbc.odbc.jdbcodbcdriver"); // โหลดไดรเวอร์ ct = drivermanager.getConnection ("JDBC: ODBC: YWQ"); // รับการเชื่อมต่อ System.out.println ("ฐานข้อมูลที่เชื่อมต่อ ... "); } catch (exception e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); }} // เมธอดสำหรับการลงทะเบียนโมฆะสาธารณะผู้ใช้เป็นโมฆะ userRegis (String A, String B, String C, String D) {// สร้างจรวดลอง {ps = ct.prepareStatement ("แทรกลงในค่าผู้ใช้ (?,?,?)"); ps.setstring (1, a); ps.setstring (2, b); ps.setstring (3, c); ps.setstring (4, d); // ดำเนินการ int i = ps.executeUpdate (); if (i == 1) {joptionpane.showMessageDialog (null, "ความสำเร็จที่ลงทะเบียน", "ข้อความแจ้ง", joptionpane.warning_message); } else {joptionpane.showMessageDialog (null, "ลงทะเบียนล้มเหลว", "ข้อความแจ้ง", joptionpane.error_message); }} catch (sqlexception e) {// todo บล็อก catch block ที่สร้างขึ้นอัตโนมัติ e.printstacktrace (); }} // วิธีการตรวจสอบการเข้าสู่ระบบโมฆะสาธารณะ sqlverify (สตริง A, สตริง b) {ลอง {ps = ct.prepareStatement ("เลือก * จากผู้ใช้ที่ชื่อผู้ใช้ =? และรหัสผ่าน =?"); ps.setstring (1, a); ps.setstring (2, b); // ชุดผลลัพธ์ชุดผลลัพธ์คุณสามารถเข้าใจ ResultSet เป็นชุดผลลัพธ์ที่ส่งคืนแถวตาราง rs = ps.executeQuery (); if (rs.next ()) {user = rs.getString (1); pwd = rs.getString (2); joptionpane.ShowMessageDialog (null, "เข้าสู่ระบบได้สำเร็จ!!", "ข้อความแจ้ง", joptionpane.warning_message); System.out.println ("ได้รับรหัสผ่านและชื่อผู้ใช้สำเร็จจากฐานข้อมูล"); System.out.println (ผู้ใช้ + "/t" + pwd + "/t"); } else {joptionpane.showMessageDialog (null, "ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้องโปรดกลับเข้ามาอีกครั้ง!", "ข้อความแจ้ง", joptionpane.error_message); }} catch (sqlexception e) {e.printstacktrace (); }} // วิธีการตรวจสอบการลงทะเบียนเพื่อตรวจสอบว่าชื่อผู้ใช้มีโมฆะสาธารณะอยู่แล้ว zhuceverify (สตริง A) {ลอง {ps = ct.preparestatement ("เลือก * จากผู้ใช้ที่ชื่อผู้ใช้ =?"); // system.out.println (ps); ps.setstring (1, a); rs = ps.executeQuery (); ถ้า (rs.next ()) {joptionpane.showMessagedialog (Null, "ชื่อผู้ใช้นี้มีอยู่แล้ว", "ข้อความแจ้ง", joptionpane.warning_message); } else {// ลงทะเบียน ui ui = ใหม่ ui (); this.userRegis (ui.jtf1.getText (), ui.jtf2.getText (), ui.jtf3.getText (), ui.jtf4.getText ()); }} catch (sqlexception e) {e.printstacktrace (); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น