Android登录和注册用户名密码并连云数据库MySQL详细代码步骤
时间: 2023-06-11 19:08:03 浏览: 57
这里提供一个基本的Android登录和注册用户名密码并连云数据库MySQL的代码示例:
1. 创建MySQL数据库并创建用户表
首先,需要在MySQL中创建一个名为"users"的表,该表包含以下列:id(整数类型,自增长),username(字符串类型),password(字符串类型)。
2. 创建Android项目并添加依赖库
在Android Studio中创建一个新的项目,然后在build.gradle文件中添加以下依赖库:
```
dependencies {
implementation 'com.android.volley:volley:1.2.1'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
}
```
3. 创建登录和注册布局
创建一个名为"activity_login.xml"的布局文件,该文件包含两个EditText,一个Button和一个TextView。创建一个名为"activity_register.xml"的布局文件,该文件包含三个EditText,一个Button和一个TextView。
4. 创建Java类并编写相关代码
创建一个名为"LoginActivity"的Activity类和一个名为"RegisterActivity"的Activity类。在这些类中,编写与用户登录和注册相关的代码。
在"LoginActivity"中,输入用户名和密码并单击登录按钮。使用Volley库将用户名和密码发送到MySQL数据库,并接收来自数据库的响应。如果响应表示成功,则将用户重定向到另一个Activity(例如主Activity)。否则,向用户显示错误信息。
在"RegisterActivity"中,输入用户名、密码和电子邮件地址并单击注册按钮。使用Volley库将这些数据发送到MySQL数据库,并在数据库中创建一个新的用户。如果成功,则将用户重定向到登录Activity。否则,向用户显示错误消息。
下面是示例代码:
LoginActivity.java
```java
public class LoginActivity extends AppCompatActivity {
private EditText mUsername, mPassword;
private Button mLoginBtn;
private TextView mRegisterLink;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mUsername = findViewById(R.id.input_username);
mPassword = findViewById(R.id.input_password);
mLoginBtn = findViewById(R.id.btn_login);
mRegisterLink = findViewById(R.id.link_register);
mLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String username = mUsername.getText().toString().trim();
final String password = mPassword.getText().toString().trim();
StringRequest stringRequest = new StringRequest(Request.Method.POST, Constants.URL_LOGIN,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
String success = jsonObject.getString("success");
if (success.equals("1")) {
// login successful
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
} else {
// login failed
Toast.makeText(LoginActivity.this, "Login failed. Please try again.", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(LoginActivity.this, "Login failed. Please try again.", Toast.LENGTH_SHORT).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
Toast.makeText(LoginActivity.this, "Login failed. Please try again.", Toast.LENGTH_SHORT).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("username", username);
params.put("password", password);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(LoginActivity.this);
requestQueue.add(stringRequest);
}
});
mRegisterLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(intent);
}
});
}
}
```
RegisterActivity.java
```java
public class RegisterActivity extends AppCompatActivity {
private EditText mUsername, mPassword, mEmail;
private Button mRegisterBtn;
private TextView mLoginLink;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
mUsername = findViewById(R.id.input_username);
mPassword = findViewById(R.id.input_password);
mEmail = findViewById(R.id.input_email);
mRegisterBtn = findViewById(R.id.btn_register);
mLoginLink = findViewById(R.id.link_login);
mRegisterBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String username = mUsername.getText().toString().trim();
final String password = mPassword.getText().toString().trim();
final String email = mEmail.getText().toString().trim();
StringRequest stringRequest = new StringRequest(Request.Method.POST, Constants.URL_REGISTER,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
String success = jsonObject.getString("success");
if (success.equals("1")) {
// registration successful
Toast.makeText(RegisterActivity.this, "Registration successful. Please login.", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
startActivity(intent);
} else {
// registration failed
Toast.makeText(RegisterActivity.this, "Registration failed. Please try again.", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(RegisterActivity.this, "Registration failed. Please try again.", Toast.LENGTH_SHORT).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
Toast.makeText(RegisterActivity.this, "Registration failed. Please try again.", Toast.LENGTH_SHORT).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("username", username);
params.put("password", password);
params.put("email", email);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(RegisterActivity.this);
requestQueue.add(stringRequest);
}
});
mLoginLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
startActivity(intent);
}
});
}
}
```
Constants.java
```java
public class Constants {
private static final String ROOT_URL = "http://yourdomain.com/yourfolder/";
public static final String URL_LOGIN = ROOT_URL + "login.php";
public static final String URL_REGISTER = ROOT_URL + "register.php";
}
```
login.php
```php
<?php
require_once 'connect.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
$response['success'] = 1;
$response['message'] = "Login successful.";
} else {
$response['success'] = 0;
$response['message'] = "Login failed.";
}
echo json_encode($response);
}
?>
```
register.php
```php
<?php
require_once 'connect.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$stmt = $conn->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $password, $email);
if ($stmt->execute()) {
$response['success'] = 1;
$response['message'] = "Registration successful.";
} else {
$response['success'] = 0;
$response['message'] = "Registration failed.";
}
echo json_encode($response);
}
?>
```
connect.php
```php
<?php
$servername = "yourservername";
$username = "yourusername";
$password = "yourpassword";
$dbname = "yourdatabasename";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?>
```
请注意,上面的代码只是一个示例,需要根据你的实际情况进行修改。此外,还需要在MySQL数据库中创建一个新用户,并为该用户授予适当的权限。