Jsharp
发贴: 30
积分: 0
|
于 2006-08-03 02:18
数据库:sqlserver2000 操作系统 winxp 2 存储过程如下 CREATE proc adduser @name varchar(20),@pwd varchar(20) as insert into users values(@name,@pwd) 程式代码如下 public void reg() { System.out.println("请输入你的用户名:"); String username = input();//input()方法返回一个控制台输入的字符串 System.out.println("请输入你的密码:"); String passwd = input(); System.out.println("请再次输入你的密码:"); String passwd2 = input(); String id1 = String.valueOf((int) (Math.random() * 10)); String id2 = String.valueOf((int) (Math.random() * 10)); String id3 = String.valueOf((int) (Math.random() * 10)); String id4 = String.valueOf((int) (Math.random() * 10)); String id = id1 + id2 + id3 + id4; System.out.println("请输入你看到的右边的验证码:" + id); String idd = input(); regCheck(username, passwd, passwd2, idd, id); } public void regCheck(String username, String passwd, String passwd2, String idd, String id) { if (passwd.compareTo(passwd2) != 0) { System.out.println("两次输入密码不同"); reg(); } else if (passwd.compareTo(passwd2) == 0 && idd.compareTo(id) == 0) { ConnectBean conBean = new ConnectBean(); Connection conn = conBean.getConnection(); if (conn == null) { System.out.println("连接数据库失败"); } try { cst = conn.prepareCall("{call adduser(?,?)}"); cst.setString(1, username); cst.setString(2, passwd); cst.executeUpdate(); System.out.println("注册成功!"); login(); } catch (SQLException ex) { } finally { try { cst.close(); } catch (SQLException ex1) { } }
} else if (idd.compareTo(id) != 0) { System.out.println("验证码输入错误"); reg(); } } 这样之后数据库中的确加入了一个username 和passwd 提出passwd数据后和在控制台输入的密码数据无论用equals或compareTo方法比较结果都是false但如果直接在数据库中添加数据则能判断为true或直接在数据库中调用存储过程做判断结果都是true实在搞不明白 请帮帮我 谢谢大家
|