Java(改进):用JDBC和DBUtils做出注册,登录,找回密码的功能【诗书画唱】
用JDBC和DBUtils实现以下功能: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;
//在静态代码块中执行
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就是没有执行成功,大于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
("--------欢迎使用诗书画唱商品管理系统--------");
System.out.println(" ------请输入你要执行的操作--------");
System.out.println("1.登录2.注册 3.找回密码4.退出系统");
int num = s.nextInt();
if (num == 1) {
System.out.println("------执行登录功能-----");
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("---------执行注册功能--------");
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("执行找回密码功能");
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("出现了未知的错误。请重试");
}
}
}
}
else if (num == 4) {
System.exit(0);
} else {
System.out.println("内容输入错误!");
}
}
System.out.println("欢迎你来到诗书画唱商店,尊敬的用户" +
yh.getYh_Uname()
+ ",请关注和点赞!拜托了!这对我很重要啊!");
}
}




