黑马程序员技术交流社区

标题: 目前Mysql阶段的登陆注册小案例的实现方法 [打印本页]

作者: 吴远桥    时间: 2018-11-1 20:10
标题: 目前Mysql阶段的登陆注册小案例的实现方法
public class DaoImpl implements Dao {
    @Override
    public boolean login(String user, String password) {
        Connection connection = null;
        PreparedStatement pstmt = null;
        ResultSet resultSet = null;
        try {
            //获取连接
            connection = JDBCUtils.getConnection();
            //sql语句
            String sql = "select * from user where username= ? and password = ?";
            pstmt = connection.prepareStatement(sql);
            //给通配符赋值
            pstmt.setString(1, user);
            pstmt.setString(2, password);
            resultSet = pstmt.executeQuery();
            //注意: 这里表中只有两种情况,有这个用户或者没有,直接用resultset。next()即可
            return resultSet.next();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //释放资源
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (pstmt != null) {
                try {
                    pstmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        return false;
    }

    @Override
    public void regiest(String user, String password) {
        //进行空指针判断
        if (user == null || password == null) {
            System.out.println("用户名或者密码不能为空");
        }
        //定义在外面方便释放资源
        Connection connection = null;
        PreparedStatement pstmt = null;
        try {
            //先在表中查询是否有该用户名
            connection = JDBCUtils.getConnection();
            String sql0 = "select * from user where username = ? ";
            PreparedStatement pstmt1 = connection.prepareStatement(sql0);
            pstmt1.setObject(1, user);
            ResultSet rs = pstmt1.executeQuery();
            //判断是否有用户名相同
            if (rs.next()) {
                System.out.println("用户注册失败,用户名已存在");
            } else {
                //没有,就注册账户
                String sql = "insert into user values(null,?,?)";
                pstmt = connection.prepareStatement(sql);
                pstmt.setString(1, user);
                pstmt.setString(2, password);
                int i = pstmt.executeUpdate();
                //给出提示信息
                if (i < 0) {
                    System.out.println("注册失败");
                } else {
                    System.out.println("注册成功");
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //释放资源
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (pstmt != null) {
                try {
                    pstmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2