java:数据库的用户身份验证

package hanjia;
//用户身份验证操作(输入用户名和密码,在数据库users表中查找是否存在这样的记录,以此来判定是否为合法用户)
//连接SQL Server 2008数据库,进行身份验证
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
//导入javax.swing包中的类
class MyDB {
	private Connection con = null;
	private Statement stmt = null;
	private static final String drivername = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
	private static final String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=computer_dept;user=javase;password=javase";

	public MyDB() {
		// 连接数据库
		try {
			Class.forName(drivername);
			con = DriverManager.getConnection(url);
			stmt = con.createStatement();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public boolean query(String id, String password) {// 查询指定的学生是否存在
		boolean result = false;
		try {
			String sql = "select * from users where num='" + id + "' and password='" + password + "'";
			System.out.println("sql:" + sql);
			ResultSet rs = stmt.executeQuery(sql);
			if (!rs.next()) {
				result = false;
			} else {
				result = true;
			}
			rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		System.out.println("result:" + result);//显示结果是否为真
		return result;//返回
	}
}

// 主类
public class hanjia {
	public static void main(String[] args) {
		MyDB mydb = new MyDB();
		boolean result = false;

		String id, pwd;
		id = JOptionPane.showInputDialog("请输入帐号:");
		JPasswordField pwd_field = new JPasswordField();
		JOptionPane.showConfirmDialog(null, pwd_field, "请输入密码", JOptionPane.OK_CANCEL_OPTION,
				JOptionPane.QUESTION_MESSAGE);// 设置包含密码框的确认框
		pwd = new String(pwd_field.getPassword());//获取密码
		result = mydb.query(id, pwd);// 通过调用函数验证是否为合法用户
		if (!result) {//返回为0,非掉就是1
			JOptionPane.showMessageDialog(null, "你不是合法用户!");
		} else {
			JOptionPane.showMessageDialog(null, "你是合法用户!");
		}
		System.out.println("程序运行完毕!");
	}
}

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值