项目练习用户登录系统

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JDBCUtil {
  private static String driverClassName = "com.mysql.jdbc.Driver";
  private static String url="jdbc:mysql://localhost:3306/mydb";
  private static String username="root";
  private static String password="root";
  //加载驱动
  static {
	  try {
		Class.forName(driverClassName);
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	}
	  
  }
  //得到连接
  public static Connection getConnection() throws SQLException {
	  Connection connection = DriverManager.getConnection(url, username, password);
	  return connection;
  }
  //关闭连接
  public static void closeConnection(Connection connection) throws SQLException {
	  connection.close();
  }
  //执行增删改操作
  public static int executeUpdate(String sql,Object[] params) throws SQLException {
	  Connection connection = getConnection();
	  PreparedStatement s = connection.prepareStatement(sql);
	 if(params != null) {
	  for(int i = 0;i<params.length;i++) {
		  s.setObject(i+1,params[i] );
	  }
	 }
	  int n = s.executeUpdate();
	 s.close();
	 return n;
	 
  }
  //执行查询操作
  public static ResultSet executeQuery( Connection connection,String sql,Object[] params) throws SQLException {
	
	  PreparedStatement s = connection.prepareStatement(sql);
	 if(params != null) {
	  for(int i = 0;i<params.length;i++) {
		  s.setObject(i+1,params[i] );
	  }
	 }
	  ResultSet rs = s.executeQuery();
	 return rs;
	 
  }
}

package com.neu.dao;

import java.sql.SQLException;
import java.util.List;

import com.neu.entity.User;

public interface UserDao {

	//	检验用户名和密码是否正确,若正确返回对象,若不正确返回null
	User login(String username, String password) throws SQLException;

	//        用户注册
	int register(String username, String password, String mail) throws SQLException;

	//        添加用户
	int adduser(String username, String password, String mail) throws SQLException;

	//        删除用户
	int deleteuser(int id) throws SQLException;

	//        修改用户
	int updateuser(int id, String username, String password, String mail, int power) throws SQLException;

	//        查询全部用户
	List selectusers() throws SQLException;

	//        查询用户根据姓名
	List<User> selectuserbyname(String username) throws SQLException;

	//      查询用户根据id
	User selectuserbyid(int id) throws SQLException;

	//      员工修改自己信息
	int updateuserself(String username, String password, String mail, int id) throws SQLException;

	//      员工查询自己信息
	User selectuserself(int id) throws SQLException;
    
	//判断用户是否存在
	boolean checkUsername(String name) throws SQLException;

	int regist2(String username, String password, String mail) throws SQLException;
}
package com.neu.dao;


import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.neu.entity.User;

public  class UserDaoImpl implements UserDao {
//	检验用户名和密码是否正确,若正确返回对象,若不正确返回null
        /* (non-Javadoc)
		 * @see com.neu.dao.UserDao#login(java.lang.String, java.lang.String)
		 */
        @Override
		public User login(String username,String password) throws SQLException {
        	String sql="select * from myuser where username=? and password =?";
        	
        	Connection connection = JDBCUtil.getConnection();
       Object[] params= {username,password};
       ResultSet rs = JDBCUtil.executeQuery(connection, sql, params);
      User user=null;
      if(rs.next()) {
    	 int id=rs.getInt("id");
         String mail=rs.getString("mail");
         int power = rs.getInt("power");
		user = new User(id, username, password, mail, power);
      }
       rs.close();
       JDBCUtil.closeConnection(connection);
       return user;
        }
        
        
//        用户注册
        /* (non-Javadoc)
		 * @see com.neu.dao.UserDao#register(java.lang.String, java.lang.String, java.lang.String)
		 */
        @Override
		public int register(String username,String password,String mail) throws SQLException {
        	String sql="insert into myuser(username,password,mail) values(?,?,?)";
        	Object[] params=new Object[] {username,password,mail};
        	
        
        	 int n = JDBCUtil.executeUpdate(sql,params);
        
      	   return n;
        }
//        添加用户
        /* (non-Javadoc)
		 * @see com.neu.dao.UserDao#adduser(java.lang.String, java.lang.String, java.lang.String)
		 */
        @Override
		public int adduser(String username,String password,String mail) throws SQLException {
        	String sql="insert into myuser(username,password,mail) values(?,?,?)";
        	Object[] params=new Object[] {username,password,mail};
        	
        
        	 int n = JDBCUtil.executeUpdate(sql,params);
      	   return n;
        }
//        删除用户
        /* (non-Javadoc)
		 * @see com.neu.dao.UserDao#deleteuser(int)
		 */
        @Override
		public int deleteuser(int id) throws SQLException  {
        	String sql="delete from myuser where id=?";
        	Object[] params=new Object[] {id};
        	
        
        	 int n = JDBCUtil.executeUpdate(sql,params);
      	   return n;
        }
//        修改用户
        /* (non-Javadoc)
		 * @see com.neu.dao.UserDao#updateuser(int, java.lang.String, java.lang.String, java.lang.String, int)
		 */
        @Override
		public int updateuser(int id,String username,String password,String mail,int power) throws SQLException  {
        	String sql="update myuser set username=?,password=?,mail=?,power=? where id=?";
        	Object[] params=new Object[] {username,password,mail,power,id};
        	
        
        	 int n = JDBCUtil.executeUpdate(sql,params);
      	   return n;
        }
//        查询全部用户
        /* (non-Javadoc)
		 * @see com.neu.dao.UserDao#selectusers()
		 */
        @Override
		public List selectusers() throws SQLException {
         String sql="select * from myuser order by id ";
        	Connection connection = JDBCUtil.getConnection();
      
       ResultSet rs = JDBCUtil.executeQuery(connection, sql,null);
      User user=null;
  	List<User> users=new ArrayList<>();

      while(rs.next()) {
    	int id = rs.getInt("id");
    	String username = rs.getString("username");
    	String password = rs.getString("password");
    	String mail = rs.getString("mail");
    	int power = rs.getInt("power");
    	user=new User(id,username,password,mail,power);
    	users.add(user);
    	
      }
      
       rs.close();
       JDBCUtil.closeConnection(connection);
       return users;
			
        	
        }
//        查询用户根据姓名
        /* (non-Javadoc)
		 * @see com.neu.dao.UserDao#selectuserbyname(java.lang.String)
		 */
        @Override
		public List<User> selectuserbyname(String username) throws SQLException{
        	String sql="select * from myuser where username like ?";
        	List<User> users=new ArrayList<>();
        	Connection connection = JDBCUtil.getConnection();
       Object[] params= {"%"+username+"%"};
       ResultSet rs = JDBCUtil.executeQuery(connection, sql, params);
      User user=null;
      while(rs.next()) {
    	 int id=rs.getInt("id");
         String mail=rs.getString("mail");
         int power = rs.getInt("power");
         String password=rs.getString("password");
         String username1=rs.getString("username");
		user = new User(id, username1, password, mail, power);
		users.add(user);
      }
       rs.close();
       JDBCUtil.closeConnection(connection);
       return users;
        }
//      查询用户根据id
      /* (non-Javadoc)
	 * @see com.neu.dao.UserDao#selectuserbyid(int)
	 */
    @Override
	public User selectuserbyid(int id) throws SQLException{
      	String sql="select * from myuser where id=? ";
      	
      	Connection connection = JDBCUtil.getConnection();
     Object[] params= {id};
     ResultSet rs = JDBCUtil.executeQuery(connection, sql, params);
    User user=null;
    if(rs.next()) {
  	String username = rs.getString("username");
       String mail=rs.getString("mail");
       int power = rs.getInt("power");
     
       String password=rs.getString("password");
		user = new User(id, username, password, mail, power);
    }
     rs.close();
     JDBCUtil.closeConnection(connection);
     return user;
      }
//      员工修改自己信息
      /* (non-Javadoc)
	 * @see com.neu.dao.UserDao#updateuserself(java.lang.String, java.lang.String, java.lang.String, int)
	 */
    @Override
	public int updateuserself(String username,String password,String mail,int id) throws SQLException  {
      	String sql="update myuser set username=?,password=?,mail=? where id=?";
      	
      	Object[] params=new Object[] {username,password,mail,id};
      	
      
      	 int n = JDBCUtil.executeUpdate(sql,params);
    	   return n;
      }
//      员工查询自己信息
      /* (non-Javadoc)
	 * @see com.neu.dao.UserDao#selectuserself(int)
	 */
    @Override
	public User selectuserself(int id) throws SQLException{
        	String sql="select * from myuser where id=? ";
        	
        	Connection connection = JDBCUtil.getConnection();
       Object[] params= {id};
       ResultSet rs = JDBCUtil.executeQuery(connection, sql, params);
      User user=null;
      if(rs.next()) {
    	String username = rs.getString("username");
         String mail=rs.getString("mail");
         int power = rs.getInt("power");
         String password=rs.getString("password");
  		user = new User(id, username, password, mail, power);
      }
       rs.close();
       JDBCUtil.closeConnection(connection);
       return user;
        }
    
//  重写注册
    @Override
	public int regist2(String username,String password,String mail) throws SQLException {
    	String sql="insert into myuser(username,password,mail) values(?,?,?)";
    	Object[] params=new Object[] {username,password,mail};
    	
    
    	 int n = JDBCUtil.executeUpdate(sql,params);
    
  	   return n;
    }

//判断名字是否唯一
@Override
public boolean checkUsername(String name) throws SQLException {
	String sql="select * from myuser where username=?";
	Connection connection = JDBCUtil.getConnection();
	 Object[] params= {name};
	ResultSet rs = JDBCUtil.executeQuery(connection, sql,params);
	if(rs.next()) {return true;}else {return false;}
	
}
}
package com.neu.entity;

public class User {
 private Integer id;
 private String username;
 private String password;
 private String mail;
 private Integer power;
 
public User(Integer id, String username, String password, String mail, Integer power) {
	super();
	this.id = id;
	this.username = username;
	this.password = password;
	this.mail = mail;
	this.power = power;
}
public User() {
	super();
	// TODO Auto-generated constructor stub
}
public Integer getId() {
	return id;
}
public void setId(Integer id) {
	this.id = id;
}
public String getUsername() {
	return username;
}
public void setUsername(String username) {
	this.username = username;
}
public String getPassword() {
	return password;
}
public void setPassword(String password) {
	this.password = password;
}
public String getMail() {
	return mail;
}
public void setMail(String mail) {
	this.mail = mail;
}
public Integer getPower() {
	return power;
}
public void setPower(Integer power) {
	this.power = power;
}
@Override
public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result + ((id == null) ? 0 : id.hashCode());
	result = prime * result + ((mail == null) ? 0 : mail.hashCode());
	result = prime * result + ((password == null) ? 0 : password.hashCode());
	result = prime * result + ((power == null) ? 0 : power.hashCode());
	result = prime * result + ((username == null) ? 0 : username.hashCode());
	return result;
}
@Override
public boolean equals(Object obj) {
	if (this == obj)
		return true;
	if (obj == null)
		return false;
	if (getClass() != obj.getClass())
		return false;
	User other = (User) obj;
	if (id == null) {
		if (other.id != null)
			return false;
	} else if (!id.equals(other.id))
		return false;
	if (mail == null) {
		if (other.mail != null)
			return false;
	} else if (!mail.equals(other.mail))
		return false;
	if (password == null) {
		if (other.password != null)
			return false;
	} else if (!password.equals(other.password))
		return false;
	if (power == null) {
		if (other.power != null)
			return false;
	} else if (!power.equals(other.power))
		return false;
	if (username == null) {
		if (other.username != null)
			return false;
	} else if (!username.equals(other.username))
		return false;
	return true;
}
@Override
public String toString() {
	  String power1;
      
	 if(power==1) {
   	  power1="普通用户";
      }else {
   	   power1="管理员";
      }
	return " " + id + "\t" + username + "\t" + password + "\t" + mail + "\t"
			+ power1 + "\n";
	
}

 
}
package com.neu.service;

import java.sql.SQLException;

import com.neu.entity.User;

public interface UserService {


	public  int regist2(String username,String password,String mail) throws SQLException;


}
package com.neu.service;

import java.sql.SQLException;

import com.neu.dao.UserDao;
import com.neu.dao.UserDaoImpl;
import com.neu.entity.User;

public class UserServiceImpl implements UserService {
private static UserDao userDao=new UserDaoImpl();

@Override
public int regist2(String username, String password, String mail) throws SQLException {
	// 校验年龄是否超过18岁
	
//		检查用户名或密码长度
		if(username.length()<3 || username.length()<3) {
			return -2;
		}
//		验证用户名是否唯一
		boolean b = userDao.checkUsername(username);
		if(b) {
			return -3;
		}
//		添加用户
		else{userDao.adduser(username, password, mail);
		return 1;}
}
package com.neu.ui;

import java.sql.SQLException;
import java.util.List;
import java.util.Scanner;

import com.neu.dao.UserDao;
import com.neu.dao.UserDaoImpl;
import com.neu.entity.User;
import com.neu.service.UserService;
import com.neu.service.UserServiceImpl;

public class StartSystem {
	static Scanner input= new Scanner(System.in);
	static UserDao userDao=new UserDaoImpl();
	static int id=0;
    public static void main(String[] args) throws SQLException {
    	  while(true) {
    		  System.out.println("欢迎来到用户管理系统");
    		  System.out.println("===================");
        	 System.out.println("1.用户登录");
        	 System.out.println("2.用户注册");
        	 System.out.println("3.程序退出");
        	
        	 int n=input.nextInt();
    		  switch (n) {
    		  case 1:
    			 login();
    			  continue;
    		  case 2:
    			  register2();
    			  continue;
    		  case 3:
    			  System.out.println("退出程序");
    			  break;
    			  default:
    				  System.out.println("输入错误");
    				  break;
        	  }
        	  break;
          }
	}
    private static void login() throws SQLException {
     	System.out.println("用户登录界面");
    	System.out.println("======================");
    	System.out.println("请输入用户名:");
		String username=input.next();
		System.out.println("请输入密码");
		String password = input.next();
		UserDao userDao=new UserDaoImpl();
		User user = userDao.login(username, password);
    	if(user!=null) {
    		System.out.println("登录成功...");
    		System.out.println("====================");
    	    System.out.println("欢迎登录主窗体");
    	    System.out.println(username+"您好!您的权限是:"+(user.getPower()==2?"管理员":"普通用户"));
    	  
    	    if(user.getPower()==2) {
    	    	int p=0;
    	    	while(p==0) {
    	    	 System.out.println("======================");
    	    	    System.out.println("1.添加用户");
    	    	    System.out.println("2.删除用户");
    	    	    System.out.println("3.修改用户");
    	    	    System.out.println("4.查询用户");
    	    	    System.out.println("5.程序退出");
    	    	    int n=input.nextInt();
    	    	   switch(n) {
    	    		  case 1:
    	     			 adduser();
    	     			 break;   	     			 
    	     		  case 2:
    	     			  deleteuser();
    	     			  break;
             		  case 3:
             			 updateuser();
    	     			  break;
             		  case 4:
             			  int p4=0;
             			  while(p4==0) {
             			  System.out.println("1.查询全部用户");
             			  System.out.println("2.根据姓名查询用户");
             			  System.out.println("3.根据id查询用户");
             			  System.out.println("4.退出查询");
             			  System.out.println("请输入要做的操作");
             			 int n4=input.nextInt();
             			 switch(n4) {
             			 case 1: 
             				selectusers();break;
             			 case 2: 
             				selecteuserbyname(); break;
             			 case 3:  
             				selecteuserbyid();break;
             			 case 4:
             				 p4=1;continue;
             				default:
             					System.out.println("输入错误");
             					break;
             			 }};
             			 break;
             		 case 5:
         				 p=1;break;
    	    	   }	 
    	    	    }
    	    }else {int p=0;
    	    	while(p==0) {
    	    	 System.out.println("======================");
    	    	id=user.getId();
    	    	System.out.println("1.修改自己信息");
    	    	System.out.println("2.查询自己信息");
    	    	System.out.println("3.程序退出");
    	    	int n=input.nextInt();
    	    	switch(n) {
    	    	case 1:     
    	    		updateuserself();break;
    	    	case 2:    
    	    		selecteuserself();break;
    	    	case 3:    
    	    		 p=1;break;
    	    	default:   p=1;
    	    		System.out.println("输入错误");break;
    	    	}
    	    }
    	    }
    	   
    	    
    	    
    	    }
    	else {
    		System.out.println("没有该用户");
    	}
    }
//    注册
    private static void register() throws SQLException{
    	System.out.println("用户注册界面");
    	System.out.println("=====================");
    	System.out.println("请输入用户名:");
		String username=input.next();
		System.out.println("请输入密码");
		String password = input.next();
		System.out.println("请输入邮箱");
		String mail = input.next();
		UserDao userDao=new UserDaoImpl();
		int n = userDao.register(username, password, mail);
		if(n>0) {
			System.out.println("用户注册成功");
		}else {
			System.out.println("用户注册失败");
		}
		
    }
//    重写注册
    private static void register2() throws SQLException{
    	System.out.println("用户注册界面");
    	System.out.println("=====================");
    	System.out.println("请输入用户名:");
		String username=input.next();
		System.out.println("请输入密码");
		String password = input.next();
		System.out.println("请输入邮箱");
		String mail = input.next();
//		UserDao userDao=new UserDaoImpl();
		UserService userservice=new UserServiceImpl();
		int n = userservice.regist2(username, password, mail);
		if(n>0) {
			System.out.println("用户注册成功");	
		}
		else if(n==-2){
			System.out.println("用户名或密码长度小于3");
		}
		else if(n==-3){
			System.out.println("用户名已存在");
		}else {
			System.out.println("用户注册失败");
		}
		
    }
//  管理员添加用户
    private static void adduser() throws SQLException {
   
    	System.out.println("请输入用户名:");
		String username=input.next();
		System.out.println("请输入密码");
		String password = input.next();
		System.out.println("请输入邮箱");
		String mail = input.next();
		UserDao userDao=new UserDaoImpl();
		int n = userDao.adduser(username, password, mail);
		if(n>0) {
			System.out.println("用户添加成功");
		}else {
			System.out.println("用户添加失败");
		}
    }
//    管理员删除用户
    private static void deleteuser() throws SQLException{
    	System.out.println("请输入用户id");
    	int id = input.nextInt();
	
		int n = userDao.deleteuser(id);
		if(n>0) {
			System.out.println("用户删除成功");
		}else {
			System.out.println("用户删除失败");
		}
    }
//    管理员修改用户
    private static void updateuser() throws SQLException{
    	System.out.println("请输要修改的用户id号码:");
    	int id = input.nextInt();
    	System.out.println("请输要修改的用户姓名:");
		String username=input.next();
		System.out.println("请输要修改的用户密码:");
		String password=input.next();
		System.out.println("请输要修改的用户邮箱:");
		String mail=input.next();
		System.out.println("请输要修改的用户权限:");
		int power = input.nextInt();
		int n = userDao.updateuser(id,username, password, mail,power);
		if(n>0) {
			System.out.println("用户修改成功");
		}else {
			System.out.println("用户修改失败");
		}
    }
//    管理员查询所有用户
    private static void selectusers() throws SQLException {
    	List users = userDao.selectusers();
    	System.out.println(users.toString());
    }
//    管理员查询用户根据姓名
    private static void selecteuserbyname() throws SQLException {
    	System.out.println("请输要查询的用户姓名:");
		String username=input.next();
    	List users = userDao.selectuserbyname(username);
    	if(users!=null) {System.out.println(users);}
    	else {System.out.println("没有该用户");}
    }
//  管理员查询用户根据id
  private static void selecteuserbyid() throws SQLException {
  	System.out.println("请输要修改的用户id:");
	int id = input.nextInt();
  	User user = userDao.selectuserbyid(id);
  	System.out.println(user);
  }
//员工修改自己信息
  private static void updateuserself() throws SQLException{
	  User user = userDao.selectuserbyid(id);
	  System.out.println(user);
  	System.out.println("请输要修改的用户姓名:");
		String username=input.next();
		System.out.println("请输要修改的用户密码:");
		String password=input.next();
		System.out.println("请输要修改的用户邮箱:");
		String mail=input.next();
	
		int n = userDao.updateuserself(username, password, mail, id);
		if(n>0) {
			System.out.println("用户修改成功");
		}else {
			System.out.println("用户修改失败");
		}
  }
//  员工查询自己信息
  private static void selecteuserself() throws SQLException {
	  User user = userDao.selectuserbyid(id);
	  System.out.println(user);
	  }
  
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值