로그인하고 작은 코드를 등록하고 배운 작은 지식을 결합하여이를 사용하여 인상을 심화시킵니다. 이 예제에 의견이 있으면 자세한 내용은 다른 블로그를 참조하십시오.
기능 소개 : 데이터베이스 SQLServer, 싱글 톤 패턴, 정규 표현식 및 그래픽 개발과 같은 지식을 사용하는 간단한 로그인 및 등록 시스템.
1. 로그인 인터페이스에서 로그인하거나 사용자를 등록 할 수 있습니다. 사용자 인터페이스를 등록하고 정규 표현식에 지정된 형식 요구 사항에 따라 정보를 입력하십시오. 오류가 있으면 다시 입력하십시오.
2. 등록하려면 클릭하고 먼저 SQLServer 데이터베이스에 연결합니다. 연결이 성공하면 사용자 이름이 이미 존재하는지 여부가 결정됩니다. 존재하면 프롬프트가 제공됩니다. 그렇지 않으면 등록하십시오.
3. 인터페이스 로그인. 로그인 버튼을 클릭하면 먼저 데이터베이스와 연결을 설정하십시오. 사용자 이름과 비밀번호에 따라 데이터베이스에서 검색하십시오. 그렇다면 로그인이 성공할 것입니다. 그렇지 않으면 프롬프트를 제공하십시오.
4. 싱글 톤 모드를 사용하여 SQLServer와 같은 객체 만 생성하여 메모리 오버 헤드를 크게 저장할 수 있습니다.
https://github.com/chaohuangtianjie994/a-login-register-system을 참조하십시오
5.이를 바탕으로 많은 확장 기능을 수행 할 수 있습니다.
코드는 다음과 같습니다.
userregister.java 로그인 인터페이스.
패키지 패키지 1; / * * 함수 : 로그인 인터페이스에는 등록 기능이 있으며 등록 인터페이스가 나타납니다. * 데이터베이스에 등록 된 정보를 저장하고 로그인을 수행 할 수 있습니다. *저자 : ywq */ import javax.swing. *; java.awt.*; import java.awt.event.*; Java.sql.*; public class 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; public static void main (String [] args) {userRegister ur = new userRegister (); } public userRegister () {// 구성 요소 생성 // 구성 요소 생성 jb1 = new Jbutton ( "로그인"); JB2 = 새로운 JBUTTON ( "레지스터"); JB3 = 새로운 JBUTTON ( "Exit"); // 청취 SET JB1.ADDACTIONLISTERE (this); jb2.addactionListener (this); jb3.addactionListener (this); JLB1 = New Jlabel ( "사용자 이름 :"); JLB2 = New Jlabel ( "비밀번호 :"); jtf = 새로운 Jtextfield (10); JPF = 새로운 JPASSWORDFIELD (10); jp1 = 새로운 jpanel (); jp2 = 새로운 jpanel (); jp3 = 새로운 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.set -Visible (true); this.setResizable (false); this.settitle ( "로그인 인터페이스 등록"); this.setLayout (New GridLayout (3,1)); this.setDefaultCloseOperation (jframe.exit_on_close); this.setbounds (300, 200, 300, 180); } @override public void ActionPerformed (ActionEvent e) {// 각 버튼을 듣습니다. } else if (e.getActionCommand () == "로그인") {// 로그인 메소드를 호출 this.login (); } else if (e.getActionCommand () == "register") {// 등록 메소드를 호출 this.regis (); }} // 레지스터 메소드 public void regis () {this.dispose (); // 현재 인터페이스를 닫습니다. new UI (); // 새 인터페이스 열} // 로그인 메소드 public void login () {sqlserver s = new sqlserver (); s.connectsql (); s.sqlverify (jtf.gettext (), jpf.gettext ()); this.jtf.settext ( ""); this.jpf.settext ( ""); }} UI.java 등록용 페이지 디스플레이. 정규식은 입력 컨텐츠를 지정하는 데 사용됩니다. 등록 할 때 먼저 사용자 이름이 존재하는지 확인해야합니다. 존재하는 경우 프롬프트가 제공됩니다. 그렇지 않으면 등록하십시오.
패키지 패키지 1; import java.awt.event.*; java.awt.*; javax.swing을 가져옵니다.*; / * * 등록 인터페이스. */class ui는 jframe emplesments actionListener {// 구성 요소 정의 jframe jf; JPANEL JP; Jlabel JL1, JL2, JL3, JL4; Jtextfield JTF1, JTF2, JTF3, JTF4; JBUTTON JB1, JB2; public ui () {// 구성 요소 초기화 jf = new jframe (); jp = 새로운 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 = 새로운 JBUTTON ( "return"); jb1.setToolTipText ( "로그인 인터페이스로 돌아 가려면 나를 클릭하십시오"); JB2 = 새로운 JBUTTON ( "레지스터"); JB1.AddActionListener (this); jb2.addactionListener (this); jp.setlayout (New 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.set -Visible (true); this.setDefaultCloseOperation (jframe.exit_on_close); // this.setResizable (false); } public void ActionPerformed (ActionEvent e) {if (e.getActionCommand () == "return") {this.dispose (); 새로운 userRegister (); // system.out.println ( "-------"); } else if (e.getActionCommand () == "register") {// 등록 메소드를 호출 this.zhuce (); }} public void zhuce () {String regex1 = "// w {3,6}"; // 사용자 이름은 3-6 비트 부울 flag1 = jtf1.getText (). matches (regex1) 여야합니다. String regex2 = "// w {6}"; // 비밀번호는 6 비트 부울 flag2 = jtf2.getText (). matches (regex2) 여야합니다. String regex3 = "[// u4e00-// u9fa5] {2,4}"; // 이름은 2-4 중국어 여야합니다. 부울 flag3 = jtf3.getText (). matches (regex3); String regex4 = "// d {3,6}"; // 학생 번호는 3-6 비트 부울 flag4 = jtf4.getText (). 매치 (regex4)이어야합니다. // if (jtf1.getText () == null || jtf2.getText () == null || jtf3.getText () == null || jtf4.getText () == null) if (flag1 == false) {joptionpane.showMessagedIalog (null, "사용자 이름은 3-6 수정자가되어 있어야합니다. joptionpane.warning_message); jtf1.settext ( ""); } else if (flag2 == false) {joptionpane.showMessagedIalog (null, "비밀번호가 잘못 채워 져야합니다. 6 글자 또는 숫자", "프롬프트 메시지", joptionpane.warning_message); jtf2.settext ( ""); } else if (flag3 == false) {joptionpane.showmessagedialog (null, "잘못된 이름 채우기, 2-4 개의 한자는 2-4 자리", "프롬프트 메시지", joptionpane.warning_message); jtf3.settext ( ""); } else if (flag4 == false) {joptionpane.showmessagedialog (null, "잘못된 학생 번호 충전물, 3-6 자리", "프롬프트 메시지", joptionpane.warning_message); jtf4.settext ( ""); } else {// 등록 방법을 호출/먼저 등록 할 사용자 이름이 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는 데이터베이스 연결 및 쿼리 확인과 같은 다양한 기능을 구현합니다.
패키지 패키지 1; Java.sql.*; import javax.swing.joptionpane; /** 데이터베이스와 관련된 작업, 클래스로 별도로 캡슐화 된 작업*/ 클래스 SQLServer {Connection CT; 준비된 상태 ps; resultSet rs; 문자열 사용자, pwd; // 데이터베이스에 연결하는 메소드를 메소드에 연결하는 메소드를 캡슐화 public void connectsql () {try {class.forname ( "sun.jdbc.odbc.jdbcodbcdriver"); // 드라이버를로드 CT = DriverManager.GetConnection ( "JDBC : ODBC : YWQ"); // 연결 시스템을 가져옵니다. out.println ( "연결된 데이터베이스 ..."); } catch (예외 e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); }} // 사용자를 등록하는 메소드 공개 void userRegis (문자열 a, 문자열 b, 문자열 c, 문자열 d) {// 로켓 생성 try {ps = ct.preparestatement ( "user value (?, ?,?)"); 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, "register 실패", "프롬프트 메시지", joptionpane.error_message); }} catch (sqlexception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); }} // 로그인 검증 방법 public void sqlverify (문자열 a, 문자열 b) {try {ps = ct.preparestatement ( "username =? and password =?"); ps.SetString (1, a); ps.SetString (2, b); // resultSet result set, 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 (user + "/t" + pwd + "/t"); } else {joptionpane.showmessagedialog (null, "사용자 이름 또는 비밀번호가 올바르지 않습니다. }} catch (sqlexception e) {e.printstacktrace (); }} // 사용자 이름에 이미 공개 void zhuceverify가 있는지 여부를 결정하기 위해 검증 메소드를 등록하십시오 (문자열 a) {try {ps = ct.preparestatement ( "username =??"); // system.out.println (ps); ps.SetString (1, a); rs = ps.ExecuteQuery (); if (rs.next ()) {joptionpane.showmessagedialog (null, "이 사용자 이름이 이미 존재합니다", "프롬프트 메시지", joptionpane.warning_message); } else {// register ui ui = new ui (); this.userregis (ui.jtf1.gettext (), ui.jtf2.gettext (), ui.jtf3.gettext (), ui.jtf4.gettext ()); }} catch (sqlexception e) {e.printstacktrace (); }}}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.