Android连接MSSQL服务端的使用教程

Android连接MSSQL服务端的使用教程

1. 导入MSSQL Server JDBC驱动

在Android Studio中,我们需要在app的build.gradle中添加以下代码:

dependencies {

compile group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '7.0.0.jre8'

}

这里使用的是mssql-jdbc的版本为7.0.0.jre8。

2. 连接MSSQL Server

2.1 创建一个AsyncTask

在连接数据库的过程中,我们需要使用一个AsyncTask来建立数据库连接。这个AsyncTask需要在一个独立的线程中运行,如果在主线程中运行可能会出现ANR(Application Not Responding)问题。

下面是这个AsyncTask的代码:

private class ConnectToDB extends AsyncTask<Void, Void, Void> {

String connectionUrl = "jdbc:sqlserver://192.168.1.100:1433;databaseName=myDB;user=myUsername;password=myPassword;encrypt=true;trustServerCertificate=true;";

Connection connection = null;

@Override

protected Void doInBackground(Void... voids) {

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

connection = DriverManager.getConnection(connectionUrl);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}

@Override

protected void onPostExecute(Void aVoid) {

super.onPostExecute(aVoid);

// Do something with the connection here

}

}

在这个例子当中,我们使用了一个字符串connectionUrl来指定连接的参数,其中包括了数据库的IP地址、端口、数据库名称、用户名和密码。这个字符串的格式和普通的JDBC连接字符串没有什么区别,只需要指定好服务器地址、数据库名称、用户名和密码即可。

2.2 运行AsyncTask

在和MSSQL Server连接的代码已经创建好之后,我们需要调用这个AsyncTask来运行这个代码。在我们想要连接数据库的时候,我们只需要这样写:

new ConnectToDB().execute();

这个方法会在一个独立的线程中运行,执行完毕之后会调用到onPostExecute方法,我们可以在这个方法中进行一些和数据库相关的操作。

3. 查询MSSQL Server中的数据

3.1 创建一个新的AsyncTask

在连接上数据库并且获取到了connection对象之后,我们可以使用这个connection对象来执行SQL语句。我们需要使用一个新的AsyncTask来在后台线程中执行SQL查询语句,并且返回查询结果。

下面是这个AsyncTask的代码:

private class QueryDatabase extends AsyncTask<String, Void, ResultSet> {

Connection connection = null;

public QueryDatabase(Connection connection) {

this.connection = connection;

}

@Override

protected ResultSet doInBackground(String... strings) {

ResultSet resultSet = null;

try {

Statement statement = connection.createStatement();

resultSet = statement.executeQuery(strings[0]);

} catch (SQLException e) {

e.printStackTrace();

}

return resultSet;

}

@Override

protected void onPostExecute(ResultSet resultSet) {

super.onPostExecute(resultSet);

try {

while (resultSet.next()) {

String column1 = resultSet.getString("Column1");

String column2 = resultSet.getString("Column2");

// Do something with the data here

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

这个AsyncTask需要接收一个SQL查询语句作为参数,然后在后台线程中执行这个SQL查询语句,并且返回查询结果。在调用这个AsyncTask的时候,我们只需要传递一个SQL查询语句进去,这个AsyncTask就会自动执行这个SQL查询语句,并且在onPostExecute方法中返回查询结果。

3.2 运行AsyncTask

在SQL查询语句已经创建好之后,我们需要调用这个AsyncTask来运行这个查询代码。在我们想要查询数据库的时候,我们只需要这样写:

new QueryDatabase(connection).execute("SELECT Column1, Column2 FROM Table1");

这个方法也会在一个独立的线程中运行,执行完毕之后会调用到onPostExecute方法,在这个方法中可以获取到查询结果,我们可以在这个方法中进行一些和查询结果相关的操作。

4. 结论

在本文当中,我们学习了如何在Android应用程序中连接MSSQL Server,并且执行一些SQL查询语句。同时,我们还学习了如何使用AsyncTask来在后台线程中运行一些耗时的操作,避免了ANR问题的发生。

数据库标签