2、登录功能实现

他一、管理员登录功能实现
小图标下载网站

步骤:

1、创建JDBC连接数据库的工具类:DbUtil.java

/**
 * 
 * @author Administrator
 *
 */
public class DbUtil {

	private String jdbcName="jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=UTF-8";
	private String dbUserName="root";
	private String dbPassword="root";
	private String dbUrl="com.mysql.jdbc.Driver";
	
	/**
	 * 获取数据库连接
	 * @return
	 * @throws Exception
	 */
	private  Connection getCon() throws Exception{
		Class.forName(jdbcName);
		Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
		return con;
	}
	
	/**
	 * 关闭连接
	 * @param stmt
	 * @param con
	 * @throws SQLException
	 */
	public void close(Statement stmt,Connection con) throws SQLException{
		if(stmt!=null){
			stmt.close();
			if(con!=null){
				con.close();
			}
		}
	}
}

2.创建一个用户的实体类:User.java

/**
 * 用户实体
 * @author Administrator
 *
 */
public class User {

	private int id;
	private String userName;
	private String password;
	
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	public User(String userName, String password) {
		super();
		this.userName = userName;
		this.password = password;
	}
	public User(int id, String userName, String password) {
		super();
		this.id = id;
		this.userName = userName;
		this.password = password;
	}
	public int getId() {
		return id;
	}
	public void setId(int 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;
	}
	
	
}

3、创建操作数据库的dao,UserDao.java

/**
 * 用户Dao类
 * @author Administrator
 *
 */
public class UserDao {

	/**
	 * 登录验证
	 * @param con数据库连接
	 * @param user//从界面获得的user信息
	 * @return
	 */
	public User login(Connection con,User user)throws Exception{
		User resultUser=null;
		String sql="select * from t_user where userName=? and password=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, user.getUserName());
		pstmt.setString(2, user.getPassword());
		ResultSet rs=pstmt.executeQuery();
		if(rs.next()){
			resultUser=new User();
			resultUser.setId(rs.getInt("id"));
			resultUser.setUserName(rs.getString("userName"));
			resultUser.setPassword(rs.getString("password"));
		}
		return resultUser;
		
	}
}

4、创建包images,用来存放图片

5、创建登录界面:LogOnFrm.java

  • 新建Jframe窗口

在这里插入图片描述

在这里插入图片描述
设置标题
在这里插入图片描述
去除窗口最大化选项
在这里插入图片描述
修改布局方式
在这里插入图片描述
添加需要的组件
在这里插入图片描述

  • label-"图书管理系统"

在这里插入图片描述

  • lblNewLabel-"用户名:"

在这里插入图片描述

  • lblNewLabel-"密 码:"

在这里插入图片描述

  • 重命名textField为userNameTxt
  • 重命名passwordField为passwordTxt
  • btnNewButton-"登录"

在这里插入图片描述

  • btnNewButton_1-"重置"

在这里插入图片描述

6、btnNewButton_1-“重置”,实现重置功能

注册一个事件
在这里插入图片描述
生成一个默认的事件方法

public void actionPerformed(ActionEvent arg0) {
				
			}
public void actionPerformed(ActionEvent e) {
				resetValueActionPerformed(e);//重新在外面定义一个方法
			}
/**
	 * 重置事件处理
	 * @param e
	 */
	protected void resetValueActionPerformed(ActionEvent evt) {
		this.userNameTxt.setText("");
		this.passwordTxt.setText("");
		
	}

7、新建一个判断userName和password是否为空的工具类:StringUtil.java

/**
 * 字符串工具类
 * @author Administrator
 *
 */
public class StringUtil {

	/**
	 * 判断是否为空
	 * @param str
	 * @return
	 */
	public static boolean isEmpty(String str){
		if(str==null %% "".equals(str.trim())){
			return true;
		}else{
			return false;
		}
	}
	
	/**
	 * 判断是否不为空
	 * @param str
	 * @return
	 */
	public static boolean isNotEmpty(String str){
		if(str!=null || !"".equals(str.trim())){
			return true;
		}else{
			return false;
		}
	}
}

8、btnNewButton-“登录”,实现登录功能

注册一个事件,生成一个默认的事件方法

public void actionPerformed(ActionEvent arg0) {
			}
public void actionPerformed(ActionEvent evt) {
				loginActionPerformed(evt);
			}
protected void loginActionPerformed(ActionEvent evt) {
		String userName=this.userNameTxt.getText();
		String password=new String(this.passwordTxt.getPassword());
		if(StringUtil.isEmpty(userName)){
			JOptionPane.showMessageDialog(null, "用户名不能为空");
			return;
		}
		if(StringUtil.isEmpty(password)){
			JOptionPane.showMessageDialog(null, "密码不能为空");
			return;
		}
		User user=new User(userName,password);
		Connection con=null;
		try {
			con=dbUtil.getCon();
			User currentUser=userDao.login(con, user);//currentUser是一个结果,如果为null的话说明用户名,密码错误
			if(currentUser!=null){
				JOptionPane.showMessageDialog(null, "成功");
			}else{
				JOptionPane.showMessageDialog(null, "失败");
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

运行结果:

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值