ログインして小さなコードを登録し、学んだ小さな知識のいくつかを組み合わせて、それを使用して印象を深めます。この例にコメントがある場合は、詳細については他のブログを参照してください。
関数の紹介:データベースSQLServer、Singleton Pattern、正規表現、グラフィカル開発などの知識を使用した、単純なログインおよび登録システム。
1.ログインインターフェイスでは、ユーザーをログインまたは登録できます。ユーザーインターフェイスを登録し、正規表現で指定された形式の要件に従って情報を入力します。エラーがある場合は、再入力します。
2.クリックして登録して、最初にSQLServerデータベースに接続します。接続が成功した場合、ユーザー名が既に存在するかどうかが判断されます。それが存在する場合、プロンプトが与えられます。それ以外の場合は、登録します。
3。インターフェイスをログインします。 [ログイン]ボタンをクリックするときは、最初にデータベースとの接続を確立します。ユーザー名とパスワードに従ってデータベースで検索します。もしそうなら、ログインは成功します。それ以外の場合は、プロンプトを与えます。
4. Singletonモードを使用して、SQLServerのようなオブジェクトのみを作成でき、メモリオーバーヘッドを大幅に保存します。
参照:https://github.com/chaohuangtianjie994/a-login-register-system
5。これに基づいて、多数の拡張機能を実行できます。
コードは次のとおりです。
userregister.javaログインインターフェイス。
パッケージパッケージ1; / * *関数:ログインインターフェイスには登録関数があり、登録インターフェイスがポップアップします。 *データベースに登録情報を保存すると、ログインを実行できます。 *著者:YWQ */ Import javax.swing。 *; java.awt。*; java.awt.event。*; Java.sql。*をインポートします。 Public Class UserRegisterは、JFRAMEを拡張します。ActionListener{// Login Interfaceのコンポーネントを定義します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( "Login"); jb2 = new jbutton( "Register"); jb3 = new jbutton( "exit"); //リスニングjb1.addactionlistener(this)を設定します。 jb2.addactionlistener(this); jb3.addactionlistener(this); jlb1 = new Jlabel( "username:"); 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(true); this.SetSizable(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){//各ボタンを聞くif(e.getActionCommand()== "exit"){system.exit(0); } else if(e.getActionCommand()== "login"){// login method 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; java.awt.event。*; java.awt。*; javax.swing。*; / * *登録インターフェイス。 */class uiはjframeを拡張しますactionlistener {// define component 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 = new JTextfield(10); jtf1.settooltiptext( "ユーザー名は3-6桁の文字_or numbers"); jl2 = new Jlabel( "パスワードを入力してください:"); jtf2 = new JTextfield(10); jtf2.settooltiptext( "パスワードは6桁のletters_or numbers"でなければなりません "); jl3 = new Jlabel( "名前を入力してください:"); jtf3 = new JTextfield(10); jtf3.settooltiptext( "名前は漢字の2〜4桁でなければなりません"); jl4 = new Jlabel( "学生番号を入力してください:"); jtf4 = new JTextfield(10); jtf4.settooltiptext( "学生番号は3〜6桁でなければなりません"); jb1 = new jbutton( "return"); jb1.settooltiptext( "私をクリックしてログインインターフェイスに戻る"); jb2 = new jbutton( "Register"); 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( "register interface"); this.setbounds(200、100、250、150); this.setVisible(true); this.setDefaultCloseoperation(jframe.exit_on_close); // this.setresizable(false); } public void actionperformed(actionEvent e){if(e.getActionCommand()== "return"){this.dispose(); new userregister(); // system.out.println( "-------"); } else if(e.getActionCommand()== "Register"){//登録方法this.zhuce(); }} public void zhuce(){string regex1 = "// w {3,6}"; //ユーザー名は3-6ビットである必要がありますboolean flag1 = jtf1.getText()。一致(regex1); string regex2 = "// w {6}"; //パスワードは6ビットboolean flag2 = jtf2.getText()。一致(regex2)である必要があります。 string regex3 = "[// u4e00- // u9fa5] {2,4}"; //名前は2-4漢字でなければなりませんboolean flag3 = jtf3.getText()。一致(regex3); string regex4 = "// d {3,6}"; //学生番号は3-6ビットでなければなりませんboolean flag4 = jtf4.getText()。一致(regex4); // if(jtf1.getText()== null || jtf2.getText()== null || jtf3.getText()== null || jtf4.getText()== null)if(flag1 == false){joptionpane.showmessialog(null、null、 "null"メッセージ "、joptionpane.warning_message); jtf1.settext( ""); } else if(flag2 == false){joptionpane.showmessageialog(null、 "パスワードは誤って満たされ、6文字または数字が必要である必要があります"、 "Prompt message"、joptionpane.warning_message); jtf2.settext( ""); } else if(flag3 == false){joptionpane.showmessageialog(null、 "誤った名前の塗りつぶし、2〜4人の漢字は2〜4桁でなければなりません」、「迅速なメッセージ」、joptionpane.warning_message); jtf3.settext( ""); } else if(flag4 == false){joptionpane.showmessageialog(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。*をインポートします。 javax.swing.joptionpaneをインポートします。 /**データベースに関連する操作、クラスに個別にカプセル化されています*/ classs sqlserver {connection ct;準備PS;結果rs;文字列ユーザー、PWD; //データベースに接続するメソッドをメソッドパブリックvoid connectsql(){try {class.forname( "sun.jdbc.odbc.jdbcodbcdriver"); //ドライバーをロードct = drivermanager.getConnection( "jdbc:odbc:ywq"); //接続system.out.println( "接続データベース..."); } catch(例外e){// todo auto-enerated catch block e.printstacktrace(); }} //ユーザーのpublic void userregis(String A、String B、String C、String D)を登録する方法{// Rocket Try {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.showmessageialog(null、 "Register failed"、 "Prompt Message"、joptionpane.error_message); }} catch(sqlexception e){// todo auto-feenated catch block e.printstacktrace(); }} //ログイン検証メソッドpublic void sqlverify(string a、string b){try {ps = ct.preparestatement( "select * select * username =?and password =?"); ps.setString(1、a); ps.setString(2、b); // resultSet result set、results rs = ps.executequery()を返す結果セットとして結果を理解できます。 if(rs.next()){user = rs.getString(1); pwd = rs.getString(2); joptionpane.showmessageialog(null、 "ログインに正常に!!!!"、 "PROMPメッセージ"、joptionpane.warning_message); system.out.println( "データベースからパスワードとユーザー名を正常に取得しました"); System.out.println(user + "/t" + pwd + "/t"); } else {joptionpane.showmessageialog(null、 "ユーザー名またはパスワードが間違っている、再入力してください!"、 "PROMPメッセージ"、joptionpane.error_message); }} catch(sqlexception e){e.printstacktrace(); }} //登録検証メソッドユーザー名に既にpublic void zhuceverifyがあるかどうかを判断するzhuceverify(string a){try {ps = ct.preparestatement( "select * from users where username =?"); // system.out.println(ps); ps.setString(1、a); rs = ps.executequery(); if(rs.next()){joptionpane.showmessageialog(null、 "このユーザー名は既に存在します"、 "Prompt Message"、joptionpane.warning_message); } else {//登録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をもっとサポートすることを願っています。