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问题的发生。