在 android studio 中使用 JDBC 登录级别

Posted

技术标签:

【中文标题】在 android studio 中使用 JDBC 登录级别【英文标题】:Login Levels using JDBC in android studio 【发布时间】:2018-03-06 10:38:04 【问题描述】:

我正忙于创建一个连接到数据库以检查凭据的登录页面。现在我正在尝试创建一行代码,如果您是员工职位 1,则转到 Main2Activity,如果您是员工职位 2,则转到 Main3Activity。

这是我的代码:

String query = "select * from cc_employee where employee_username= '" + usernam.toString() + "' and employee_password = '"+ passwordd.toString() +"'  ";
                        Statement stmt = con.createStatement();
                        ResultSet rs = stmt.executeQuery(query);
                        if(rs.next())
                        
                            z = "Login successful";
                            type = rs.getString("employee_position");
                            isSuccess=true;
                            con.close();
                            if (type = "1")
                                Intent i=new Intent(login.this,Main2Activity.class);
                                startActivity(i);
                            
                            else 
                                Intent i=new Intent(login.this,Main3Activity.class);
                                startActivity(i);
                            

                        
                        else
                        
                            z = "Invalid Credentials!";
                            isSuccess = false;
                        

这是我的数据库的图像

【问题讨论】:

这段代码充满了问题。首先,看起来您正在比较和存储原始明文密码。不要那样做,存储密码的散列版本。此外,if (type = "1")type 进行赋值,它不检查type 的值。 【参考方案1】:

这是对我有用的答案

String query = "select * from cc_employee where employee_username= '" + usernam.toString() + "' and employee_password = '"+ passwordd.toString() +"'  ";                            
Statement stmt = con.createStatement();
                    ResultSet rs = stmt.executeQuery(query);
                    if(rs.next())
                    
                        z = "Login successful";
                        type = rs.getInt("employee_position");
                        isSuccess=true;
                        con.close();

                        switch (type)
                            case 1:
                                intent = new Intent(login.this,Main2Activity.class);
                                break;
                            case 2:

                            intent = new Intent(login.this,Main3Activity.class);
                            break;

                            case 3:
                                intent = new Intent(login.this,Main4Activity.class);
                                break;
                            case 4:
                                intent = new Intent(login.this,Main5Activity.class);
                                break;
                        
                        startActivity(intent);

                    
                    else
                    
                        z = "Invalid Credentials!";
                        isSuccess = false;
                    
                

【讨论】:

以上是关于在 android studio 中使用 JDBC 登录级别的主要内容,如果未能解决你的问题,请参考以下文章

我无法使用带有 Android Studio 的 JDBC 连接到 SQL Server Express

在 Android Studio 中找不到 JDBC 类

Android Studio [JDBC]:为啥我无法访问数据库

Android Studio使用JDBC远程连接mysql的注意事项(附示例)

android studio使用JDBC访问mysql数据库(Kotlin方法)

React Native,Android Studio,JDBC,MySql - 拒绝访问用户'root'@'ipaddress'