连接的应用程序到SQL Server数据库

我想我的应用程序连接到SQL Server数据库连接的应用程序到SQL Server数据库

我创造了这个loginActivity:

import android.annotation.SuppressLint; 

import android.content.Intent;

import android.os.AsyncTask;

import android.os.StrictMode;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ProgressBar;

import android.widget.Toast;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class LoginActivity extends AppCompatActivity

{

// Declaring layout button, edit texts

Button login;

EditText username,password;

ProgressBar progressBar;

// End Declaring layout button, edit texts

// Declaring connection variables

Connection con;

String un,pass,db,ip;

//End Declaring connection variables

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_login);

// Getting values from button, texts and progress bar

login = (Button) findViewById(R.id.btnlogin);

username = (EditText) findViewById(R.id.txtStagiaireName);

password = (EditText) findViewById(R.id.txtStagiairePass);

progressBar = (ProgressBar) findViewById(R.id.progressBar);

// End Getting values from button, texts and progress bar

// Declaring Server ip, username, database name and password

ip = "192.168.1.9:1433";

db = "dbcom";

un = "sa";

pass = "123456";

//End Declaring Server ip, username, database name and password

// Setting up the function when button login is clicked

login.setOnClickListener(new View.OnClickListener()

{

@Override

public void onClick(View v)

{

CheckLogin checkLogin = new CheckLogin();// this is the Asynctask, which is used to process in background to reduce load on app process

checkLogin.execute("");

}

});

//End Setting up the function when button login is clicked

}

public class CheckLogin extends AsyncTask<String,String,String>

{

String z = "";

Boolean isSuccess = false;

@Override

protected void onPreExecute()

{

progressBar.setVisibility(View.VISIBLE);

}

@Override

protected void onPostExecute(String r)

{

progressBar.setVisibility(View.GONE);

Toast.makeText(LoginActivity.this, r, Toast.LENGTH_SHORT).show();

if(isSuccess)

{

Toast.makeText(LoginActivity.this , "Login Successfull" , Toast.LENGTH_LONG).show();

//finish();

}

}

@Override

protected String doInBackground(String... params)

{

String usernam = username.getText().toString();

String passwordd = password.getText().toString();

if(usernam.trim().equals("")|| passwordd.trim().equals(""))

z = "Please enter Username and Password";

else

{

try

{

con = connectionclass(un, pass, db, ip); // Connect to database

if (con == null)

{

z = "Check Your Internet Access!";

}

else

{

// Change below query according to your own database.

String query = "select * from Stagiaire where username= '" + usernam.toString() + "' and password = '"+ passwordd.toString() +"' ";

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(query);

if(rs.next())

{

z = "Login successful";

isSuccess=true;

con.close();

}

else

{

z = "Invalid Credentials!";

isSuccess = false;

}

}

}

catch (Exception ex)

{

isSuccess = false;

z = ex.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 +";databaseName="+ database + ";user=" + user+ ";password=" + password + ";";

connection = DriverManager.getConnection(ConnectionURL);

}

catch (SQLException se)

{

Log.e("error here 1 : ", se.getMessage());

}

catch (ClassNotFoundException e)

{

Log.e("error here 2 : ", e.getMessage());

}

catch (Exception e)

{

Log.e("error here 3 : ", e.getMessage());

}

return connection;

}

}

当我编译该项目,并把用户名和密码,总是我得到这个吐司:检查您的互联网访问! 这意味着connectionURL = null。
但是为什么?如果我的代码有任何问题,请通知我!

12-02 22:43:23.116 2388-2388/com.reddivx.ismo.advancedismo I/art: Not late-enabling -Xcheck:jni (already on) 

12-02 22:43:23.116 2388-2388/com.reddivx.ismo.advancedismo W/art: Unexpected CPU variant for X86 using defaults: x86

12-02 22:43:23.300 2388-2388/com.reddivx.ismo.advancedismo W/System: ClassLoader referenced unknown path: /data/app/com.reddivx.ismo.advancedismo-2/lib/x86

12-02 22:43:23.314 2388-2388/com.reddivx.ismo.advancedismo I/InstantRun: starting instant run server: is main process

12-02 22:43:23.394 2388-2388/com.reddivx.ismo.advancedismo W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable

12-02 22:43:24.630 2388-2388/com.reddivx.ismo.advancedismo W/gralloc_ranchu: Gralloc pipe failed

[ 12-02 22:43:24.632 2388: 2388 D/ ]

HostConnection::get() New Host Connection established 0x9ae3d7c0, tid 2388

12-02 22:43:24.674 2388-2409/com.reddivx.ismo.advancedismo I/OpenGLRenderer: Initialized EGL, version 1.4

12-02 22:43:24.674 2388-2409/com.reddivx.ismo.advancedismo D/OpenGLRenderer: Swap behavior 1

12-02 22:45:19.093 2388-2388/com.reddivx.ismo.advancedismo W/IInputConnectionWrapper: finishComposingText on inactive InputConnection

12-02 22:46:44.606 2388-2968/com.reddivx.ismo.advancedismo E/error here 1 :: Network error IOException: Connection refused

回答:

我不相信你可以在开箱即用的Android上使用JDBC。 请参考this SO question

还要检查this library,如果你想使用JDBC在Android

以上是 连接的应用程序到SQL Server数据库 的全部内容, 来源链接: utcz.com/qa/258035.html

回到顶部