用Android studio自带的 LoginActivity连接MySQL实现登录功能

连接MySQL

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;class DBLogin {    private static final String driver = "com.mysql.jdbc.Driver";    private static final String url = "jdbc:mysql://192.168.1.6:3306/libraryDB";    private static final String user = "phill";    private static final String pwd = "123456";    private static Connection conn=null;    private static int jumper=111;    static void linkMysql(){        try {            Class.forName("com.mysql.jdbc.Driver");            System.out.println("驱动加载成功!");        }        catch (Exception e){            e.printStackTrace();        }        try {                conn=DriverManager.getConnection(url, user, pwd);                System.out.println("连接数据库成功!");        }        catch (Exception e){            e.printStackTrace();        }    }    static void linkLoginsql(String username, String password) {        try {            String logSql = "Select * from WR_user where phoneNum='"+ username+ "'and Upassword='"+ password+ "'";            PreparedStatement stmt = conn.prepareStatement(logSql);            ResultSet rs = stmt.executeQuery(logSql);                        // 获取跳转判断            if(rs.next()){                jumper=233;                userid=rs.getInt("userid");                nickname=rs.getString("nickname");            }else{                jumper=777;            }            System.out.println(jumper);            rs.close();            stmt.close();        }        catch (Exception e){            e.printStackTrace();        }        //关闭数据库        if(conn!=null){            try {                conn.close();            }catch (Exception e){                e.printStackTrace();            }        }    }    //传递跳转判断    static int getjumper(){        return jumper;    }    //传递用户ID    public static int getuserid(){        return userid;    }    //传递用户昵称    public static String getnickname(){        return nickname;    }}

修改LoginActivity

loginViewModel.getLoginResult().observe(this, new Observer<LoginResult>() {      @Override      public void onChanged(@Nullable LoginResult loginResult) {           if (loginResult == null) {                return;           }           loadingProgressBar.setVisibility(View.GONE);           System.out.println(loginResult.getError());           if (loginResult.getError() != null) {                showLoginFailed(loginResult.getError());           }           if (loginResult.getSuccess() != null) {                //此处添加登录跳转                Intent intent = new Intent(LoginActivity.this, MainBody.class);                LoginActivity.this.startActivity(intent);                updateUiWithUser(loginResult.getSuccess());           }           setResult(Activity.RESULT_OK);           //Complete and destroy login activity once successful           finish();      }});/*设置点击事件*/loginButton.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {           //在线程中调用数据库           Thread t1 = new Thread(new Runnable() {               public void run() {                   DBLogin.linkLoginsql(usernameEditText.getText().toString(),passwordEditText.getText().toString());               }           });           t1.start();           //在数据库连接完成之前暂停其他活动           try {                t1.join();           } catch (InterruptedException e) {                e.printStackTrace();           }           loadingProgressBar.setVisibility(View.VISIBLE);           loginViewModel.login(usernameEditText.getText().toString(),passwordEditText.getText().toString());      }});

修改LoginViewModel

//更改判断条件public void login(String username, String password) {        // can be launched in a separate asynchronous job        Result<LoggedInUser> result = loginRepository.login(username, password);        if (DBLogin.getjumper() == 233) {            LoggedInUser data = ((Result.Success<LoggedInUser>) result).getData();            loginResult.setValue(new LoginResult(new LoggedInUserView(data.getDisplayName())));        } else {            loginResult.setValue(new LoginResult(R.string.login_failed));        }    }

修改data文件LoginDataSource

public class LoginDataSource {    public Result<LoggedInUser> login(String username, String password) {        try {            // TODO: handle loggedInUser authentication            LoggedInUser fakeUser =                    new LoggedInUser(                            //修改显示的用户昵称                            java.util.UUID.randomUUID().toString(),DBLogin.getnickname());            return new Result.Success<>(fakeUser);        } catch (Exception e) {            return new Result.Error(new IOException("Error logging in", e));        }    }    public void logout() {        // TODO: revoke authentication    }}

更多相关文章

  1. Android中数据库升级
  2. android直接读取数据库文件
  3. android/IOS SDK怎么判断用户是否安装了微信/QQ
  4. android 加密数据库
  5. android 数据库
  6. Android SQLite数据库实例
  7. android之SQlite创建数据库操作
  8. android连接mysql数据库
  9. Android通过共享Uid实现两个应用间的数据库资源共享

随机推荐

  1. 几种在shell命令行中过滤adb logcat输出
  2. Android(安卓)app中加载jar插件
  3. 为寻求新增长点 山寨之父MTK发力Android
  4. Android(安卓)6.0 sensor 框架详解 (appl
  5. android省市二级联动的实现
  6. 联发科放弃千元Android市场?
  7. Android(安卓)AudioManager处理两个播放
  8. Android7.1.2源码解析系列】Android编译
  9. WIMM Labs 1.4 英寸可佩戴 Android(安卓)
  10. KISS Android(安卓)Library - Android库