日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql生成app接口_Java实现app接口和Socket消息传递(10)java连接MySQL实现App登录接口...

發布時間:2023/12/2 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql生成app接口_Java实现app接口和Socket消息传递(10)java连接MySQL实现App登录接口... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原創:

http://blog.csdn.net/iwanghang

1.先來個Androiod端口的GIF效果圖

App圖標大家可能沒看清,這個是AndroidStudio3.0最新的默認App圖標哦~~

2.不要忘記把MySQL的jar導進來

jar包放入的位置在這里:

D:\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\servletDemo\WEB-INF\lib

3.Server端代碼

package com.iwanghang.servletDemo;

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.servlet.Servlet;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

public class Test01 implements Servlet{

private String username; // 請求參數中的username

private String password; // 請求參數中的password

private String passwordSql; // 數據庫中的password

private String islogin; //返回參數是否登錄成功

public Test01() {

System.out.println("HelloServlet...");

}

@Override

public void destroy() {

System.out.println("destroy...");

}

@Override

public ServletConfig getServletConfig() {

System.out.println("getServletConfig...");

return null;

}

@Override

public String getServletInfo() {

System.out.println("getServletInfo...");

return null;

}

@Override

public void init(ServletConfig arg0) throws ServletException {

System.out.println("init...");

}

@Override

public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {

System.out.println("service...");

// 獲取請求參數

username = request.getParameter("username");

password = request.getParameter("password");

System.out.println("獲取請求參數 username = " + username);

System.out.println("獲取請求參數 password = " + password);

// 在MySQL中,用username查找對應的password

try {

Class.forName("com.mysql.jdbc.Driver");//創建驅動器

// 寫法1. 這樣寫會有警告,但是不影響使用

// Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","123456");//這是數據庫的路徑,并且還有輸入賬號(一般默認是root),密碼之前創建用戶時的那個

// 寫法2. 看起來比較復雜,但是沒有警告

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo1113?useUnicode=true&characterEncoding=utf-8&useSSL=false","root", "123456");

PreparedStatement pst=con.prepareCall("select * from aaa_user where username = '" + username + "'");//輸入的是要在MySQL中執行的代碼

ResultSet rs=pst.executeQuery();//獲得執行上面代碼后的結果集

while(rs.next()){

passwordSql = rs.getString("password");

} // 最后還有關閉連接

}

catch (ClassNotFoundException ex) {

Logger.getLogger(Test01.class.getName()).log(Level.SEVERE, null, ex);

} catch (SQLException ex) {

Logger.getLogger(Test01.class.getName()).log(Level.SEVERE, null, ex);

}

// 對比數據庫中的password,與請求參數中的password,是否一致

if (passwordSql.equals(password)){ // 如果相同

islogin = "yes";

}else{// 如果不同

islogin = "no";

};

System.out.println("islogin = " + islogin);

response.setCharacterEncoding("UTF-8");

response.setContentType("application/json; charset=utf-8");

//String jsonStr = "{\"username\":\"王航\""

//+ ",\"password\":\"987654\""

//+ ",\"status\":\"1\"}";

String jsonStr = "{\"islogin\":\""+islogin+"\"}";

PrintWriter out = null;

try {

out = response.getWriter();

out.write(jsonStr);

} catch (IOException e) {

e.printStackTrace();

} finally {

if (out != null) {

out.close();

}

}

}

}4.Server端控制臺調試信息

5.Android端代碼

package com.iwanghang.demo1113;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import com.android.volley.AuthFailureError;

import com.android.volley.Request;

import com.android.volley.RequestQueue;

import com.android.volley.Response;

import com.android.volley.VolleyError;

import com.android.volley.toolbox.StringRequest;

import com.android.volley.toolbox.Volley;

import org.json.JSONException;

import org.json.JSONObject;

import java.util.HashMap;

import java.util.Map;

import static com.iwanghang.demo1113.Constant.LOGINCHECK;

public class MainActivity extends AppCompatActivity {

private String TAG = "MainActivity";

// 創建請求隊列

RequestQueue requestQueue = null;

private EditText et_username;

private EditText et_password;

private Button bt_login;

private String username;

private String password;

private String status;

private String islogin;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

requestQueue = Volley.newRequestQueue(this);

et_username = findViewById(R.id.et_username);

et_password = findViewById(R.id.et_password);

bt_login = findViewById(R.id.bt_login);

initLogin(); // 登錄 按鈕點擊事件監聽

}

/**

* 登錄 按鈕點擊事件監聽

*/

private void initLogin() {

bt_login.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// 獲取輸入賬號密碼

username = et_username.getText().toString();

password = et_password.getText().toString();

Log.v(TAG, " username = " + username);

netLogin(); // 發送網絡請求

}

});

}

/**

* 發送網絡請求 嘗試登陸

*/

private void netLogin() {

// 請求地址

//String url = "hhttp://192.168.1.129:8080/servletDemo/test01";

StringRequest request = new StringRequest(Request.Method.POST, LOGINCHECK, new Response.Listener() {

@Override

public void onResponse(String response) {

Log.v(TAG,"response = " + response);// 返回結果

try {

if (response.equals("no")){

Toast.makeText(MainActivity.this, "登錄失敗,請檢查ID是否正確", Toast.LENGTH_SHORT).show();

}else {

JSONObject object1 = new JSONObject(response);

islogin = object1.getString("islogin"); // islogin

Log.e("TAG", "islogin = " + islogin);

Toast.makeText(MainActivity.this, "islogin = " + islogin, Toast.LENGTH_SHORT).show();

}

} catch (JSONException e) {

e.printStackTrace();

}

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

Log.v(TAG,"error = " + error); // 錯誤結果

Toast.makeText(getApplication(),"網絡出問題",Toast.LENGTH_SHORT).show();

}

}){

@Override

protected Map getParams() throws AuthFailureError {

// 請求的內容

Map params = new HashMap<>();

params.put("username",username);

params.put("password",password);

return params;

}

};

// 添加到請求隊列

requestQueue.add(request);

}

}6.Android端就不貼控制臺調試信息了,小伙伴們不要忘了Volley的jar包

原創:

http://blog.csdn.net/iwanghang

總結

以上是生活随笔為你收集整理的mysql生成app接口_Java实现app接口和Socket消息传递(10)java连接MySQL实现App登录接口...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。