使用JDBC实现简单登录验证

news/2024/5/18 21:42:56 标签: JDBC
import java.sql.*;
import java.util.*;

/**
 * 类描述:使用PrepareStatement实现登录验证
 * Author: WuChu
 * Date: 2021/8/2 22:53
 * Version: 1.0
 */
public class PrepareStatementTest {
    public static void main(String[] args) {
        //初始化界面
        //新建一个用户信息Map=集合对象
        Map<String,String> userInfo = Init();

        //判断是否合法
        boolean ok = CheckLogin(userInfo.get("uName"),userInfo.get("pWord"));

        //输出结果
        System.out.println(ok?"登录成功!":"账号或密码错误!");

    }


    /**
     * 初始化界面
     * @return  userInfo
     */
    private static Map<String,String> Init(){
        System.out.println("********欢迎使用系统,请输入账号密码确认身份*******");
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入账号:");
        String uName = scanner.next();
        System.out.print("请输入密码:");
        String pWord = scanner.next();

        //将用户输入的用户名和密码放在Map集合中
        Map<String,String> userInfo = new HashMap<>();
        userInfo.put("uName",uName);
        userInfo.put("pWord",pWord);

        //返回Map集合
        return userInfo;

    }

    /**
     * 连接数据库,判断账号密码是否合法
     * @param userName 用户输入的账号
     * @param passWord 用户输入的密码
     * @return TRUE or FALSE
     */
    private static boolean CheckLogin(String userName,String passWord){

        //先定义一些全局变量
        Connection connection = null;
        PreparedStatement ps = null;
        ResultSet rs ;
        boolean ok = false;

        //资源绑定器
        ResourceBundle resourceBundle = ResourceBundle.getBundle("userInfo");
        String driver = resourceBundle.getString("driver");
        String url = resourceBundle.getString("url");
        String username = resourceBundle.getString("username");
        String password = resourceBundle.getString("password");

        //连接数据库
        try {
            //1、注册数据库驱动
            Class.forName(driver);

            //2、获取数据库连接
            connection = DriverManager.getConnection(url,username,password);

            //3、获取预编译的数据库操作对象
            String sql = "select * from user where username = '" + userName+"' and password = '"+ passWord +"'";
            ps = connection.prepareStatement(sql);

            //4、执行SQL语句
            rs = ps.executeQuery();

            if(rs.next()){
                ok = true;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {

            //6、关闭连接
            if(ps!=null){
                try {
                    ps.close();
                } catch (SQLException se) {
                    se.printStackTrace();
                }
            }
            if(connection!=null){
                try {
                    connection.close();
                } catch (SQLException se) {
                    se.printStackTrace();
                }
            }
        }
        return ok;
    }

}


http://www.niftyadmin.cn/n/503038.html

相关文章

MYSQL 无重复插入数据更新语法 sql一句话使insert时若主键重复则更新

2019独角兽企业重金招聘Python工程师标准>>> 如果你指定了ON DUPLICATE KEY UPDATE命令语句&#xff0c;那么在唯一索引或者主索引的作用下将不插入与数据库记录重复的内容&#xff0c;但同时会更新数据库中的旧记录。例如&#xff0c;字段a被声明为唯一索引并且里面…

for循环十万条数据内存溢出_一次“内存泄露”引发的血案

走过路过不要错过点击蓝字关注我们对性能不佳的Ark Server进行了改造和重写。重编发布一段时间后&#xff0c;结果发现新发布的Svr的机器内存一直在上涨。如下图示&#xff1a;观察后&#xff0c;第一反应是完了&#xff0c;一定存在内存泄露。花了3、4天时间&#xff0c;使用各…

构建Spring项目的一些配置文件

pom.xml基础配置 <dependencies><!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!--…

mysql如何在线连接_MySQL 连接

MySQL 连接使用mysql二进制方式连接您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。实例以下是从命令行中连接mysql服务器的简单实例&#xff1a;[roothost]# mysql -u root -pEnter password:******在登录成功后会出现 mysql> 命令提示窗口&#xff…

ORACLE EXECUTE IMMEDIATE 小结

EXECUTE IMMEDIATE 代替了以前Oracle8i中DBMS_SQL package包.它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前&#xff0c;EXECUTE IMMEDIATE的目标在于减小企业费用并获得较高的性能&#xff0c;较之以前它相当容易编码.尽管DBMS_SQL仍…

解决后端返回Json字符串乱码问题

方法一: 注释中添加 当我们使用ResponseBody注解&#xff0c;让方法直接返回字符串时&#xff0c;这个时候在浏览器上直接访问会发现出现乱码&#xff0c;比如下边的例子。 ResponseBodyRequestMapping(value "/C")public String C() throws IOException {return &…

mysql 建数据库 utf8_mysql 创建数据库 utf-8 哪个好

匿名用户1级2016-03-31 回答检查当前数据库编码。使用语句&#xff1a;show variables like ‘%character%’;show variables like’%collation%’;如果不是以上情况&#xff0c;需要将mysql编码设置为utf-8。具体步骤如下&#xff1a;如果安装mysql时安装了“MySql Sever Inst…

编译器构造

编译器构造 一、 编译器简介 前面谈到静态链接器构造的基本流程&#xff0c;最后提到所构造的链接器若要能正常工作的前提是需要构造一个能生成符合链接器输入文件格式的编译器&#xff0c;本文构造一个符合这种具体格式要求编译器。但是编译器的直接编译的结果一般…