本节就是来说说这个用户注册界面如何用java实现。

大家一看就是个很简单的功能,首先我们要确保我们sqlServer能够被连接

打开sqlServer2008配置管理器,按照如下设置

OK,接下来我们去微软的网站上下载JDBC Driver2.0

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

下载下来以后,解压缩,将sqljdbc4.jar引用到项目下

引用后的工程如下

OK,我们现在写一个JDBC的工具类,先来简单点的,以后继续做的时候再扩展。

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万事具备,现在我们看看界面的实现吧。

首先是验证,用户名必须由字母和数字组成,密码也必须由字母和数字组成。并且密码和重复密码必须一致。

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。

好了最后实现一下菜单事件,让他从菜单弹出

转载于:https://blog.51cto.com/leelei/1329817

重拾JAVA之WinForm实战之(二)相关推荐

  1. php byte stringbuffer,重拾java基础(十三):String姐妹StringBuffer、StringBuilder总结

    重拾java基础(十三):String姐妹StringBuffer.StringBuilder总结 一.StringBuffer类概述buffer:缓冲 2. 字符串缓冲区,跟String非常相似,都 ...

  2. 重拾后端之Spring Boot(二):MongoDB的无缝集成

    重拾后端之Spring Boot(一):REST API的搭建可以这样简单 重拾后端之Spring Boot(二):MongoDb的无缝集成 重拾后端之Spring Boot(三):找回熟悉的Cont ...

  3. 重学 Java 设计模式:实战适配器模式

    重学 Java 设计模式:实战适配器模式 一.前言 擦屁屁纸80%的面积都是保护手的! 工作到3年左右很大一部分程序员都想提升自己的技术栈,开始尝试去阅读一些源码,例如Spring.Mybaits.D ...

  4. 重拾Java Network Programming(一)IO流

    前言 最近在重拾Java网络编程,想要了解一些JAVA语言基本的实现,这里记录一下学习的过程. 阅读之前,你需要知道 网络节点(node):位于网络上的互相连通的设备,通常为计算机,也可以是打印机,网 ...

  5. Java学习之路1——安装JDK1.8||安装idea2022||Java项目创建【重拾Java】

    Java学习之路1--安装JDK1.8||安装idea2022[重拾Java] 前言 安装 安装JDK1.8 安装idea2022(JetBrains Toolbox) Java项目创建 创建 项目结 ...

  6. Java学习之路3——方法定义、调用【重拾Java】

    Java学习之路3--方法定义.调用[重拾Java] 方法定义 为什么要写方法 方法完整的定义形式.调用 方法定义的格式 修饰符 返回值类型 返回值 调用格式 方法重载 方法定义 为什么要写方法 对于 ...

  7. 我的阿里Offer之路(一):不忘初心,重拾Java

    导读 30了,6年PHP月薪没过万,被同龄人尊称为"耿大傻X",之前沉迷于游戏,突然弃坑,学Java,进大厂 正文 2018年11月20日晚20:05,沉迷于<魂斗罗归来&g ...

  8. java并发编程实战(二)

    java并发编程中常常会用到两种容器来存放一些数据,这些数据需要保证能在多线程下正常访问.常见的容器分为两类:同步容器和并发容器.在java并发编程实战一书中的第五章也有讲解. 什么是同步容器以及优劣 ...

  9. 重拾Java基础知识:设计模式

    设计模式 前言 模式分类 设计原则 单一职责原则 开闭原则 依赖倒置原则 接口分离原则 迪米特法则 里氏替换原则 合成复用原则 创建型模式 工厂模式(简单工厂.工厂方法.抽象工厂) 单例模式 原型模式 ...

  10. 重拾Java基础知识:网络编程

    网络编程 前言 网络体系结构 IP地址 IP地址分类 子网掩码 端口 域名 网络协议 TCP/IP协议 三次握手与四次挥手 为什么要三次握手? 为什么要四次挥手? UDP协议 HTTP协议 Socke ...

最新文章

  1. 学习BeetlSQL总结(2)——查询API,更新API
  2. lib和dll文件的区别和联系(集合了几个博客的内容)
  3. linux rs232触摸屏驱动程序,Linux下的触摸屏驱动
  4. ABAP Netweaver和Hybris里获得内存使用统计数据
  5. AJAX -- 目录
  6. 7001.ubuntu18.04搭建go语言开发环境
  7. springmvc请求返回一个字符_Spring MVC框架详解01
  8. 测试自动化金字塔在软件开发中是如何使用的?
  9. 因Redis分布式锁造成的P0级重大事故,整个项目组被扣了绩效......,请慎用
  10. Linux用awk处理文本数据
  11. 光伏窗性能研究(5)——中空光伏窗节能性能模拟及优化设计
  12. Qt-Arm交叉编译以及调用虚拟键盘(中英)
  13. 微信小程序 MinUI 组件库系列之 label 标签组件
  14. 男人城府的修炼 男人成熟修炼
  15. Windows远程代码执行漏洞(CVE-2020-16898) 高危漏洞加固指南
  16. 3dsmax皮卡丘制作过程
  17. DS实验题 击鼓传花
  18. oracle日常运维11g
  19. 将IP地址更新到3323域名
  20. 整数划分java_整数划分问题及其算法

热门文章

  1. 我真的还是18岁的那个我
  2. 爬虫学习(七)——使用代理服务器进行数据爬取
  3. SQL-sqlHelper001
  4. mysql数据库运行性能检查脚本
  5. JMeter基础教程1:若隐若现的参数化
  6. 数组中第三大的数 leetcode 414
  7. python开发接口
  8. 【LOJ#10170】国王
  9. Python IO模型
  10. C# 编程指南-事件