安卓开发远程连接数据库方式2:通过发送请求到web中间层实现对数据库的增删改查操作。
第一步需要给安卓程序添加上网络权限,在安卓项目中的配置文件中加上代码<uses-permission android:name="android.permission.INTERNET" />语句用于获得访问网络的权限
第二步添加Retrofit+GSON依赖
implementation("com.squareup.okhttp3:okhttp:4.9.3")
implementation 'com.google.code.gson:gson:2.9.0'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
第三步使用Retrofit框架进行网络请求,并使用工具类进行拦截,创建一个类文件
package com.hncum.doctortest;
import android.util.Log;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class RetrofitUtils {
public static Retrofit getRetrofit(String url) {
//日志显示级别
HttpLoggingInterceptor.Level level= HttpLoggingInterceptor.Level.BODY;
//新建log拦截器
HttpLoggingInterceptor loggingInterceptor=new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
Log.d("RetrofitMessage","OkHttp====Message:"+message);
}
});
loggingInterceptor.setLevel(level);
//定制OkHttp
OkHttpClient.Builder httpClientBuilder = new OkHttpClient
.Builder();
//OkHttp进行添加拦截器loggingInterceptor
httpClientBuilder.addInterceptor(loggingInterceptor);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(GsonConverterFactory.create())
.client( httpClientBuilder.build())
.build();
return retrofit;
}
}
第四步编写接口文件
package com.hncum.doctortest.dao;
import com.hncum.doctortest.entity.DoctorTest;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
//测试 医生端 接口集合
public interface API {
//医生端登录接口
@FormUrlEncoded
@POST("doctortest/findDoctoByNumber")
Call<Boolean> getDoctor(@Field("doctorPhone") String doctorPhone, @Field("doctorPassword") String doctorPassword);
}其中有关接口地址和参数需要根据实际情况进行改动
第五步定义主机端口,创建一个java类,编写如下代码
package com.hncum.doctortest;
public class AppDataConfig {
//使用公网 IP地址 处于统一局域网中
public static String localhost = " 公共网络IP地址 ";
//9000 端口号
public static String getURL(){
return "http://"+localhost+":9000/";
}
}其中公共网络ip地址和端口号都需要根据实际情况编写,端口号就是创建的web中间层的端口号
第六步调用接口进行数据请求
package com.hncum.doctortest;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.hncum.doctortest.dao.API;
import com.hncum.doctortest.entity.DoctorTest;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class MainActivity extends AppCompatActivity {
/**
* 进行逻辑处理
* 使用Retrofit框架进行处理: Retrofit进行接口封装 OkHttp进行网络请求
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* AppDataConfig.getURL()) 网络请求网址
*/
API api = RetrofitUtils.getRetrofit(AppDataConfig.getURL()).create(API.class);
//Boolean 返回值类型
api.getDoctor("12345","1212").enqueue(new Callback<Boolean>() {
//请求成功
@Override
public void onResponse(Call<Boolean> call, Response<Boolean> response) {
System.out.println("已成功请求");
System.out.println(response.body()+"请求成功");
}
//请求失败后
@Override
public void onFailure(Call<Boolean> call, Throwable t) {
System.out.println("请求失败");
//返回错误信息
System.out.println(t.getMessage());
}
});
}
}上面的演示代码仅供参考,需要根据具体项目的逻辑进行相应的改动。
代码参考网址Android+IDEA后台+MySQL数据库数据交互实战案例(A电脑:Android B电脑:IDEA后台)_安卓app后端开发框架 mysql数据库-CSDN博客
标签:retrofit2,doctortest,安卓,public,mysql,Retrofit,import,com,数据库 From: https://www.cnblogs.com/czfznb/p/18059105