JDBC—用户登陆系统

 功能:

                   该程序可以通过Java程序 ,使用  外部 编写的 配置文件,进行数据库的连接与资源的释放,调用MySQL数据库,判断用户是否可以登陆成功。  

           使用Preparedstatement类中的 方法,解决了SQL语句的注入问题

主测试类

package JDBC_test;

import java.sql.*;
import java.util.Scanner;

public class Landing {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String name = sc.next();
        System.out.println("请输入密码:");
        String password = sc.next();
        boolean b = new Landing().landing1(name, password);
        if (b == true) {
            System.out.println("登陆成功");
        } else {
            System.out.println("用户名或密码错误");
        }
    }


    public boolean landing1(String username, String password) {
        if (username == null || password == null) {
            return false;
        }
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            connection = JDBCUtils.getConnection();

            String str = "select *  from user where username = ? and password = ?";
             preparedStatement = connection.prepareStatement(str);
            preparedStatement.setString(1,username);
            //给第一个?赋值
            preparedStatement.setString(2,password);
            //给第二个?赋值
             resultSet = preparedStatement.executeQuery();
            //preparedStatement的特有不需要传参的方法
            return resultSet.next();

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            JDBCUtils.release2(resultSet, connection, preparedStatement);
        }
        return false;
    }
}

配置文件

url=jdbc:mysql://localhost:3306/landing
user=root
password=123456
driver=com.mysql.cj.jdbc.Driver

数据库语句

CREATE TABLE USER(
	id INT PRIMARY KEY AUTO_INCREMENT,
	username  VARCHAR(32),
	PASSWORD VARCHAR(32)
);

INSERT  USER VALUE (NULL,"joune","123456");

SELECT  * FROM  USER;

加载驱动与释放资源

package JDBC_test;

import java.io.FileReader;
import java.net.URL;
import java.sql.*;
import java.util.Properties;

public class JDBCUtils {
    private static String url;
    private static String user;
    private static String password;
    private static String driver;
    static {
        try {
            Properties pro = new Properties();
            ClassLoader classLoader = JDBCUtils.class.getClassLoader();
            //创建获取文件地址类
            URL resource = classLoader.getResource("jdbc.properties");
            //获取指定文件
            String path = resource.getPath();
            //获取指定的文件绝对路径
            pro.load(new FileReader(path));
            //加载驱动
             url = pro.getProperty("url");
             user = pro.getProperty("user");
             password = pro.getProperty("password");
             driver = pro.getProperty("driver");
            Class.forName(driver);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    public static void release(Connection conn, Statement statement) {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

    public static void release2(ResultSet rs, Connection conn, Statement statement) {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }


        public static Connection getConnection() throws SQLException {
            return DriverManager.getConnection(url,user,password);
    }


}






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值