Java(改進):用JDBC和DBUtils做出注冊,登錄,找回密碼的功能【詩書畫唱】

用JDBC和DBUtils實現(xiàn)以下功能:1.登錄??2.注冊???3.找回密碼4.退出
SQL部分:
select *from yonghu
drop table yonghu
create table yonghu(
?yh_ID int primary key identity(1,1),
?yh_Uname varchar(30) not null,
? yh_Pwd varchar(30) not null,
?yh_Name varchar(30) not null,
? yh_Age int,
?yh_Sex varchar(20),
?yh_Phone varchar(100),
?yh_Address varchar(200),
? yh_jieShao varchar(500),
?yh_Q varchar(500),
?yh_A varchar(500),
yh_type nvarchar(20) check(yh_type='普通用戶' or yh_type='管理員用戶'),
);
insert into yonghu values('1','11','詩書畫唱1',21,'男','19999999999','江西','陽光帥氣的男孩子','你愛好多嗎?','多','普通用戶');
insert into yonghu values('2','22','詩書畫唱2',22,'男','29999999999','北京','陽光帥氣的男孩子','你看過的書多嗎?','多','普通用戶');
insert into yonghu values('3','33','詩書畫唱3',23,'男','39999999999','上海','陽光帥氣的男孩子','你會的技能多嗎?','多','普通用戶');
insert into yonghu values('4','44','詩書畫唱4',24,'男','49999999999','湖南','陽光帥氣的男孩子','你喜歡的動漫嗎?','多','普通用戶');
insert into yonghu values('5','55','詩書畫唱5',25,'男','59999999999','浙江','陽光帥氣的男孩子','你喜歡的歌曲多嗎?','多','管理員用戶');


Java部分:


package JdbcDBUtils;
import java.sql.*;
public class DBUtils {
static Connection con=null;
static Statement sta=null;
static ResultSet res=null;
//在靜態(tài)代碼塊中執(zhí)行
static{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//封裝鏈接數據庫的方法
public static Connection getCon(){
if(con==null){
try {
con=DriverManager.getConnection
("jdbc:sqlserver://localhost;databaseName=yonghu","sa","1234abcd");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return con;
}
//查詢的方法
public static ResultSet getSelect(String sql){
con=getCon();//建立數據庫鏈接
try {
sta=con.createStatement();
res=sta.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return res;
}
//增刪改查的方法
// 返回int類型的數據
public static boolean isZSG(String sql){
con=getCon();//建立數據庫鏈接
boolean b=false;
try {
sta=con.createStatement();
int num=sta.executeUpdate(sql);
//0就是沒有執(zhí)行成功,大于0 就成功了
if(num>0){
b=true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return b;
}
}


package JdbcDBUtils;
public class yonghu {
private String yh_Address;
private int yh_Age;
private int yh_ID;
private String yh_Jieshao;
private String yh_Name;
private String yh_Phone;
private String yh_Pwd;
private String yh_Sex;
private String yh_Uname;
private String yh_Q;
private String yh_A;
private String yh_type;
public yonghu(){}
//public yh(){}為默認的構造方法
public String getYh_Address() {
return yh_Address;
}
public void setYh_Address(String yh_Address) {
this.yh_Address = yh_Address;
}
public int getYh_Age() {
return yh_Age;
}
public void setYh_Age(int yh_Age) {
this.yh_Age = yh_Age;
}
public int getYh_ID() {
return yh_ID;
}
public void setYh_ID(int yh_ID) {
this.yh_ID = yh_ID;
}
public String getYh_Jieshao() {
return yh_Jieshao;
}
public void setYh_Jieshao(String yh_Jieshao) {
this.yh_Jieshao = yh_Jieshao;
}
public String getYh_Name() {
return yh_Name;
}
public void setYh_Name(String yh_Name) {
this.yh_Name = yh_Name;
}
public String getYh_Phone() {
return yh_Phone;
}
public void setYh_Phone(String yh_Phone) {
this.yh_Phone = yh_Phone;
}
public String getYh_Pwd() {
return yh_Pwd;
}
public void setYh_Pwd(String yh_Pwd) {
this.yh_Pwd = yh_Pwd;
}
public String getYh_Sex() {
return yh_Sex;
}
public void setYh_Sex(String yh_Sex) {
this.yh_Sex = yh_Sex;
}
public String getYh_Uname() {
return yh_Uname;
}
public void setYh_Uname(String yh_Uname) {
this.yh_Uname = yh_Uname;
}
public String getYh_Q() {
return yh_Q;
}
public void setYh_Q(String yh_Q) {
this.yh_Q = yh_Q;
}
public String getYh_A() {
return yh_A;
}
public void setYh_A(String yh_A) {
this.yh_A = yh_A;
}
public String getYh_type() {
return yh_type;
}
public void setYh_type(String yh_type) {
this.yh_type = yh_type;
}
public yonghu(String yh_Address, int yh_Age,?
int yh_ID, String yh_Jieshao,
String yh_Name, String yh_Phone,?
String yh_Pwd, String yh_Sex,
String yh_Uname, String yh_Q,?
String yh_A, String yh_type) {
// super();
this.yh_Address = yh_Address;
this.yh_Age = yh_Age;
this.yh_ID = yh_ID;
this.yh_Jieshao = yh_Jieshao;
this.yh_Name = yh_Name;
this.yh_Phone = yh_Phone;
this.yh_Pwd = yh_Pwd;
this.yh_Sex = yh_Sex;
this.yh_Uname = yh_Uname;
this.yh_Q = yh_Q;
this.yh_A = yh_A;
this.yh_type = yh_type;
}
@Override
public String toString() {
return "yh [yh_Address=" + yh_Address +?
", yh_Age=" + yh_Age + ", yh_ID="
+ yh_ID + ", yh_Jieshao=" + yh_Jieshao?
+ ", yh_Name=" + yh_Name
+ ", yh_Phone=" + yh_Phone + ", yh_Pwd="
+ yh_Pwd + ", yh_Sex="
+ yh_Sex + ", yh_Uname=" + yh_Uname
+ ", yh_Q=" + yh_Q + ", yh_A="
+ yh_A + ", yh_type=" + yh_type + "]";
}
}


package JdbcDBUtils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Random;
import java.util.Scanner;
public class zhuCeDengLu {
public static Scanner s = new Scanner(System.in);
static yonghu yh = new yonghu();
public static void main(String[] args)?
throws Exception {
boolean b = true;
while (b) {
System.out.println
("--------歡迎使用詩書畫唱商品管理系統(tǒng)--------");
System.out.println(" ------請輸入你要執(zhí)行的操作--------");
System.out.println("1.登錄2.注冊 3.找回密碼4.退出系統(tǒng)");
int num = s.nextInt();
if (num == 1) {
System.out.println("------執(zhí)行登錄功能-----");
System.out.println("請輸入你的用戶名");
String uname = s.next();
System.out.println("請輸入你的密碼");
String pwd = s.next();
boolean bb = true;
while (bb) {
System.out.println("請輸入驗證碼");
Random r = new Random();
int num_yanzhengma_bianhao = r.nextInt(9000) + 1000;
System.out.println(num_yanzhengma_bianhao);
int num_yanzhengma = s.nextInt();
if (num_yanzhengma_bianhao == num_yanzhengma) {
System.out.println("驗證碼輸入正確");
bb = false;
} else {
System.out.println("驗證碼輸入錯誤");
}
}
String sql = "select * from yonghu where yh_Uname= '"?
+ uname
+ "' and yh_Pwd='" + pwd + "'";
ResultSet res = DBUtils.getSelect(sql);
if (res.next()) {
System.out.println("登錄成功");
yh.setYh_ID(res.getInt("yh_ID"));
yh.setYh_Uname(res.getString("yh_Uname"));
yh.setYh_Pwd(res.getString("yh_Pwd"));
yh.setYh_Name(res.getString("yh_Name"));
yh.setYh_Age(res.getInt("yh_Age"));
yh.setYh_Sex(res.getString("yh_Sex"));
yh.setYh_Phone(res.getString("yh_Phone"));
yh.setYh_Address(res.getString("yh_Address"));
yh.setYh_Jieshao(res.getString("yh_JieShao"));
yh.setYh_Q(res.getString("Yh_Q"));
yh.setYh_A(res.getString("Yh_A"));
yh.setYh_type(res.getString("Yh_type"));
b = false;
} else {
System.out.println("用戶名或密碼輸入錯誤,請重試!");
}
}
else if (num == 2) {
System.out.println("---------執(zhí)行注冊功能--------");
System.out.println("請輸入你的用戶名");
String uname = s.next();
System.out.println("請輸入你的用戶密碼");
String pwd = s.next();
System.out.println("請輸入你的真實姓名");
String name = s.next();
System.out.println("請輸入你的年齡");
int age = s.nextInt();
System.out.println("請輸入你的性別");
String sex = s.next();
System.out.println("請輸入你的手機號");
String phone = s.next();
System.out.println("請輸入你的地址");
String address = s.next();
System.out.println("請輸入你的個人介紹");
String jieshao = s.next();
System.out.println("請輸入你的問題");
String wenTi = s.next();
System.out.println("請輸入你的答案");
String daAn = s.next();
System.out.println("請輸入你的用戶類型");
String yonghuLeiXing = s.next();
String sql = "insert into yonghu values('" + uname
+ "'" + ", '" + pwd + "',' " + name + "', " + age
+ " , '" + sex + "' ," + "'" + phone + "'," + "'"
+ address + "'" + "," + "'" + jieshao + "','"+wenTi+?
"','"+daAn + "','"+
yonghuLeiXing+"')";
if (DBUtils.isZSG(sql)) {
System.out.println("注冊成功");
} else {
System.out.println("注冊失敗,請重試");
}
}?
else if (num == 3) {
System.out.println("執(zhí)行找回密碼功能");
System.out.println("請輸入你要找回用戶的用戶名");
String name=s.next();
String sql="select * from yonghu where yh_Uname="
+ "'"+name+"'";
ResultSet res=DBUtils.getSelect(sql);
if(res.next()){
String wenti=res.getString("yh_Q");
System.out.println("你的問題是");
System.out.println(wenti);
System.out.println("請輸入你的問題答案");
String daan=s.next();
String sql2="select * from yonghu where yh_Uname='"
+name+"' "
+ "and yh_Q='"+wenti+"' and yh_A='"
+daan+"'";
ResultSet res2=DBUtils.getSelect(sql2);
if(res2.next()){
System.out.println("請輸入你的新密碼");
String new_pwd=s.next();
String sql3="update yonghu set yh_pwd='"
+new_pwd+"' where yh_uname='"+name+"'";
if(DBUtils.isZSG(sql3)){
System.out.println("密碼修改成功");
}else{
System.out.println("出現(xiàn)了未知的錯誤。請重試");
}
}
}
}?
else if (num == 4) {
System.exit(0);
} else {
System.out.println("內容輸入錯誤!");
}
}
System.out.println("歡迎你來到詩書畫唱商店,尊敬的用戶" +?
yh.getYh_Uname()
+ ",請關注和點贊!拜托了!這對我很重要??!");
}
}


