BookManager (2)--->管理员登录功能实现

1、实体层:com.java.model;

创建一个model实体的包。首先创建一个用户的实体。

在model包下创建一个名为 user 类,封装了一些User的信息、get set方法以及构造方法:

package com.java.model;
 
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 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;
	}
 
}

2、数据访问层:com.java.dao; 

我们先在数据库db_book里面新建一个t_user表,存储了登录界面的用户名和密码信息:

3、在数据访问层Dao里面新建用户的数据访问类UserDao,主要是登录验证的信息:

package dao;

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

import model.User;

/**
 * 用户Dao类。登陆验证
 * @author 123
 *
 */
public class UserDao {
	
	/**
	 * 登陆验证
	 * @param con
	 * @param user
	 * @return
	 * @throws Exception
	 */
	
	public User login(Connection con,User user) throws Exception{
		//登陆正确,返回用户的所有实体信息
		User resultUser = null;
		//预处理
		String sql = "select * from t_user where userName = ? and password = ?";
		//获取PreparationsStatement接口
		PreparedStatement pstmt =  con.prepareStatement(sql);
		// 设置未知量的值
		pstmt.setString(1, user.getUserName());//user为界面传过来的数据
		pstmt.setString(2, user.getPassword());//user为界面传过来的数据
		
		//执行sql,返回的是一个结果集
		ResultSet rs = pstmt.executeQuery();
		//判断结果集是否有下一条记录如果查到,则对结果集进行实例化
		if(rs.next()) {
			//对用户进行实例化,取其中的set方法;
			resultUser = new User();
			//取第一行id这个属性的数据,将结果返回给User实体的信息
			resultUser.setId(rs.getInt("id"));
			//取第一行UserName这个属性的数据,将结果返回给User实体的信息
			resultUser.setUserName(rs.getString("userName"));
			// 取第一行PassWord这个属性的数据,将结果返回给User实体的信息
			resultUser.setPassword(rs.getString("password"));
		}
		return resultUser;
	}
}

3、视图层:com.java.view;

创建一个view(视图层)的包

(在视图层里面写登录的界面,这里要用到WindowBuilder这个插件

右键view包,里面新建一个名设置为LogOnFrm类:右键点击view包->new->Other->WindowBuilder->Swing Designer->JFrame类;

接下来会自动生成代码,我们选择 Design ,对登录窗口进行设计

(1)

(2)

具体布局功能请参照:https://www.cnblogs.com/lukelook/p/11185418.html

 (3)继续完成相关的设计

(4) 用户名需要重命名

(5)密码同样需要重命名

(5) 首先是重置按钮功能:

右键重置按钮->Add event handler->action->actionPerformed;

然后会在Source里面自动生成一个方法:

可以自动生成该方法对应的函数体:

在方法体里面,我们写上如下代码:

用文本自带的setText方法将框里面的内容设置为空!这样就可以了; 

(6)登录功能按钮:

右键登录按钮->Add event handler->action->actionPerformed;

这里我们在actionPerformed()方法里面写一个loginActionPerformed(e)方法,

 

 可以自动生成该方法对应的函数体: 

 首先要判断用户输入的用户名和密码是否为空:

当然,这里我们要写一个判断字符串是否为空的StringUtil工具类(写在com.java.util包里面):

package util;

/**
 * 字符串工具类
 * @author 123
 *
 */
public class StringUtil {
	/**
	 * 判断是否是空
	 * @param str
	 * @return
	 */
	public static boolean isEmpty(String str) {
		//trim() 函数移除字符串两侧的空白字符或其他预定义字符。
		if(str == null || "".equals(str.trim())) {
			return true;
		}else {
			return false;
		}
	}

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

(7)再连接一下数据库 :

 然后ctrl + 鼠标左键 跳转进入方法;alt shift + s 可以生成构造方法

 

自动生成代码如下:

 自动生成代码如下:

 (8)连接一下数据库:

 

 

登陆成功,到这里登录界面就完成了!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值