在 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远程连接mysql的注意事项(附示例)
android studio使用JDBC访问mysql数据库(Kotlin方法)
React Native,Android Studio,JDBC,MySql - 拒绝访问用户'root'@'ipaddress'