【发布时间】:2022-06-11 06:27:16
【问题描述】:
应用程序需要使用SQL检查数据库中的数据并在登录页面的帮助下导入,但连接到服务器时出现错误。
注意:服务器的连接信息是正确的。
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.alpertunademirbas.kanguru.Connection.ConnectionClass;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class LoginActivity extends AppCompatActivity {
EditText emaillogin,passwordlogin;
Button loginbtn;
Connection con;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
emaillogin = (EditText)findViewById(R.id.emaillogin);
passwordlogin = (EditText)findViewById(R.id.passwordlogin);
loginbtn = (Button)findViewById(R.id.loginbtn);
loginbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new LoginActivity.checkLogin().execute("");
}
});
}
public class checkLogin extends AsyncTask<String, String, String>{
String z = null;
Boolean isSuccess = false;
@Override
protected void onPreExecute() {
}
@Override
protected void onPostExecute(String s) {
}
@Override
protected String doInBackground(String... strings) {
con = connectionClass(ConnectionClass.un.toString(),ConnectionClass.pass.toString(),ConnectionClass.db.toString(),ConnectionClass.ip.toString());
if(con == null){
System.out.println(con);
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(LoginActivity.this,"Check Internet Connection",Toast.LENGTH_LONG).show();
}
});
z = "On Internet Connection";
}
else {
try {
String sql = "SELECT * FROM register WHERE email = '" + emaillogin.getText() + "' AND password = '" + passwordlogin.getText() + "' ";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(LoginActivity.this, "Login Success", Toast.LENGTH_LONG).show();
}
});
z = "Success";
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
finish();
} else {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(LoginActivity.this, "Check email or password", Toast.LENGTH_LONG).show();
}
});
emaillogin.setText("");
passwordlogin.setText("");
}
} catch (Exception e) {
isSuccess = false;
Log.e("SQL Error : ", e.getMessage());
}
}
return z;
}
}
@SuppressLint("NewApi")
public Connection connectionClass(String user, String password, String database, String server){
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Connection connection = null;
String connectionURL = null;
try{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
connectionURL = "jdbc:jtds:sqlserver://" + server+"/" + database + ";user=" + user + ";password=" + password + ";";
connection = DriverManager.getConnection(connectionURL);
}catch (Exception e){
Log.e("SQL Connection Error : ", e.getMessage());
}
return connection;
}
}
连接类
package com.alpertunademirbas.kanguru.Connection;
public class ConnectionClass {
public static String ip = "########"; // SQL Server IP Address
public static String un = "######"; // SQL Server User name
public static String pass = "######"; // SQL Server Password
public static String db = "#######"; // SQL Server Database
}
【问题讨论】:
标签: android sql sql-server connection jtds