重拾JAVA之WinForm實戰之(二)

本節就是來講說這個用戶註冊界面如何用java實現。
java

230543733.png

你們一看就是個很簡單的功能,首先咱們要確保咱們sqlServer可以被鏈接sql

230732577.png

打開sqlServer2008配置管理器,按照以下設置app

231000425.png

OK,接下來咱們去微軟的網站上下載JDBC Driver2.0ide

http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=2505工具

下載下來之後,解壓縮,將sqljdbc4.jar引用到項目下sqlserver

231307301.png

引用後的工程以下
網站

231553781.png

OK,咱們如今寫一個JDBC的工具類,先來簡單點的,之後繼續作的時候再擴展。this

package Utility;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCSqlHelper {
    private static Connection con = null;
    private static Statement st = null;
    private static ResultSet rs = null;
    private static void dbconn() {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        }
        String conURL = "jdbc:sqlserver://localhost:1433;databaseName=Bonus";
        try {
            con = DriverManager.getConnection(conURL, "sa", "123456");
            st = con.createStatement();
        } catch (SQLException e) {
            // TODO 自動生成 catch 塊 e.printStackTrace();
        }
    }
    private static void dbclose() {
        try {
            st.close();
            con.close();
        } catch (SQLException e) {
            // TODO 自動生成 catch 塊
            e.printStackTrace();
        }
        st = null;
        con = null;
    }
    public static ResultSet query(String sql) {
        dbconn();
        try {
            rs = st.executeQuery(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rs;
    }
    public static int update(String sql) {
        int i = 0;
        try {
            dbconn();
            i = st.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            dbclose();
        }
        return i;
    }
}

這個就不作解釋了,OK萬事具有,如今咱們看看界面的實現吧。server

首先是驗證,用戶名必須由字母和數字組成,密碼也必須由字母和數字組成。而且密碼和重複密碼必須一致。blog

private void RegisterUser() {
        String userNo = txtUserNo.getText().trim();
        String pwd = txtPwd.getText().toString().trim();
        String rePwd = txtRePwd.getText().toString().trim();
        if (!CheckInput(userNo, pwd, rePwd)) {
            return;
        }
        StringBuffer strBuffer = new StringBuffer();
        strBuffer.append("INSERT INTO dbo.[User]");
        strBuffer.append("(UseNo,Pwd,IsAdmin) ");
        strBuffer.append("VALUES('" + userNo + "','" + pwd + "','"
                + (chkRole.isSelected() ? "1" : "0") + "')");
        try {
            JDBCSqlHelper.update(strBuffer.toString());
            MessageHelper.ShowMessage("註冊成功!", "提示");
            this.WindowClose();
        } catch (Exception ex) {
            ex.printStackTrace();
        }          
    }

首先是check Input,咱們看一下

private boolean CheckInput(String userNo, String pwd, String rePwd) {
        if (userNo.isEmpty()) {
            MessageHelper.ShowMessage("請輸入同戶名!", "用戶名");
            return false;
        }
        if (pwd.isEmpty()) {
            MessageHelper.ShowMessage("請輸入密碼!", "密碼");
            return false;
        }
        if (rePwd.isEmpty()) {
            MessageHelper.ShowMessage("請輸入重複密碼!", "重複密碼");
            return false;
        }
        boolean isMatch=userNo.matches("^[A-Za-z0-9]+$");
        if (!isMatch) {
            MessageHelper.ShowMessage("用戶名只能由字母和數字組成!", "用戶名");
            return false;
        }
                                                
        isMatch = pwd.matches("^[A-Za-z0-9]+$");
        if (!isMatch) {
            MessageHelper.ShowMessage("密碼只能由字母和數字組成!", "密碼");
            return false;
        }
        if (!pwd.equals(rePwd)) {
            MessageHelper.ShowMessage("密碼和重複密碼不一致!", "重複密碼");
            return false;
        }
        return true;
    }

OK,上面就是check input的邏輯,不作解釋,很簡單。OK,驗證經過以後,數據保存進sqlserver。

232502460.png

好了最後實現一下菜單事件,讓他從菜單彈出

相關文章
相關標籤/搜索