import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;
public class UserTest {
static Scanner s= new Scanner(System.in);
static int id;//用户id不可更改
public static void main(String[] args) throws Exception {
System.out.println("#欢迎进入我的页面#\n输入功能对应的数字进行相应操作\n1:登录\t2:注册\t3:退出");
int k=s.nextInt();
if(k==1) {
UserUtil.logIn();
}
if(k==2) {
UserUtil.register();
}
if(k==3) {
System.out.println("成功退出,程序终止");
System.exit(0);
}
s.close();
}
private static Connection getConnection() {
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获得连接
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/java1710","root","0325");
return con;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 用户工具包,具有登录,注册,修改,查询,删除功能
*/
public static class UserUtil{
static Connection con=getConnection();
//查询数据中是否包含输入的用户名
private static boolean checkName(String name) {
try(PreparedStatement ps=con.prepareStatement("select username from t_user where username=?");
){
ps.setString(1, name);
ResultSet rs=ps.executeQuery();
if(rs.next()) {
rs.close();
return true;
}
}catch(Exception e) {
e.printStackTrace();
}
return false;
}
/**
* 查询密码是否正确
* @param pwd
* @return
*/
private static boolean checkPwd(String pwd) {
try(PreparedStatement ps = con.prepareStatement("SELECT PWD FROM T_USER WHERE pwd=? AND id=?");){
ps.setString(1, pwd);
ps.setInt(2, id);
ResultSet rs=ps.executeQuery();
if(rs.next()) {
rs.close();
return true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//如果该用户名不存在,返回false
return false;
}
/**
* 检查用户名和密码信息
* @param name
* @param pwd
* @return
*/
private static boolean checkInfo(String name,String pwd) {
try(PreparedStatement ps = con.prepareStatement("SELECT * FROM T_USER WHERE USERNAME=? AND PWD=? ");){
ps.setString(1, name);
ps.setString(2, pwd);
ResultSet rs=ps.executeQuery();
if(rs.next()) {
id=rs.getInt("id");
rs.close();
return true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//如果该用户名不存在,返回false
return false;
}
/**
* 登录,查询数据
*/
public static void logIn() {
System.out.println("请输入用户名");
String name=s.next();
System.out.println("请输入密码");
String pwd=s.next();
if(checkInfo(name,pwd)) {
System.out.println("登录成功,你可以使用以下功能");
System.out.println("1:修改用户信息\t2:删除用户信息\t3:查询所有用户信息");
int n=s.nextInt();
if(n==1) {
UserUtil.updateInfo();
}
if(n==2) {
UserUtil.delete();
}
if(n==3) {
UserUtil.select();
}
}else {
System.out.println("密码或用户名输入错误,请重新登录");
logIn();
}
}
/**
* 注册(向数据库中插入数据)
*/
public static void register(){
try(PreparedStatement ps=con.prepareStatement("insert into t_user values(null,?,?,?)")){
//设置不自动提交
con.setAutoCommit(false);
System.out.println("请输入注册用户名");
String name=s.next();
//判断用户名是否已存在
while(checkName(name)) {
System.out.println("该用户名已被占用,请重新输入");
name=s.next();
}
System.out.println("请输入注册密码");
String pwd=s.next();
System.out.println("请输入邮箱(选填)");
String email=s.next();
ps.setString(1, name);
ps.setString(2, pwd);
ps.setString(3, email);
ps.execute();
con.commit();//提交注册信息
System.out.println("注册成功,即将为你跳转登录界面......");
logIn();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void updateInfo(){
try(PreparedStatement ps=con.prepareStatement("UPDATE T_USER SET USERNAME=?,PWD=?,EMAIL=? WHERE ID=?")){
//设置不自动提交
con.setAutoCommit(false);
System.out.println("请输入新的用户名");
String name=null;;
//判断用户名是否已存在
while(checkName((name=s.next()))) {
System.out.println("该用户名已被占用,请重新输入");
}
System.out.println("请输入新的密码");
String pwd=null;
while(checkPwd((pwd=s.next()))) {
System.out.println("新密码不能与原密码相同,请重新输入");
}
System.out.println("请输入新的邮箱");
String email=s.next();
ps.setString(1, name);
ps.setString(2, pwd);
ps.setString(3, email);
ps.setInt(4, id);
ps.execute();
con.commit();//提交修改信息
System.out.println("修改成功,下次登录有效");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 查询功能
*/
private static void selectInfo() {
try(PreparedStatement ps=con.prepareStatement("SELECT * FROM T_USER")){
ResultSet rs=ps.executeQuery();
while(rs.next()) {
System.out.println("用户ID:"+rs.getInt(1)+"\t用户名:"+rs.getString(2));
}
}catch(Exception e) {
e.printStackTrace();
}
}
private static void selectInfo(String name) {
try(PreparedStatement ps=con.prepareStatement("SELECT * FROM T_USER WHERE username=?")){
ps.setString(1, name);
ResultSet rs=ps.executeQuery();
if(!rs.next()) {
System.out.println("查询的用户不存在");
}
while(rs.next()) {
System.out.println("用户ID:"+rs.getInt(1)+"\t用户名:"+rs.getString(2));
}
}catch(Exception e) {
e.printStackTrace();
}
}
public static void select() {
System.out.println("-=-=-=-查询功能-=-=-=-\n1:查询全部\t2:根据用户名查询");
int m=s.nextInt();
if(m==1) {
UserUtil.selectInfo();
}
if(m==2) {
System.out.println("请输入要查询的用户名");
String name=s.next();
UserUtil.selectInfo(name);
}
}
/**
* 删除用户信息
*/
public static void delete() {
String sql="delete from table where id=?";
try(PreparedStatement ps=con.prepareStatement(sql)){
ps.setInt(1, id);
System.out.println("成功删除当前登录用户数据");
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
JDBC练习题,用户信息管理,登录注册
最新推荐文章于 2019-01-11 20:08:02 发布