Android使用JTDS连接SQL Server 2008 EXPRESS数据库实战

3星 · 超过75%的资源 需积分: 12 76 下载量 122 浏览量 更新于2024-09-10 1 收藏 4KB TXT 举报
"本教程介绍如何在Android应用中通过JTDS驱动程序连接到SQL Server 2008 EXPRESS数据库。开发环境包括Windows XP、SQL Server 2008 EXPRESS(混合认证模式)、Eclipse Luna、JDK 1.7、最新版Android SDK以及jtds 1.3.0版本。设备是运行Android 4.4.2系统的三星S4,并使用WiFi网络进行连接。" 在Android应用开发中,有时需要与后端数据库进行交互,例如SQL Server 2008 EXPRESS。JTDS(Java Type 4 JDBC Driver for SQL Server and Sybase)是一个开源的JDBC驱动程序,它允许Java应用程序直接连接到Microsoft SQL Server和Sybase数据库。在这个示例中,我们将使用JTDS驱动程序实现Android应用与SQL Server 2008 EXPRESS的通信。 首先,你需要从SourceForge下载jtds 1.3.0版本的驱动包(http://sourceforge.net/projects/jtds/files/jtds/1.3.0)。将下载的`jtds-1.3.0.jar`文件添加到你的Android项目的`libs`目录中。接下来,在Eclipse中,右键点击项目,选择"Build Path" -> "Configure Build Path" -> "Libraries" -> "Add External JARs",然后选择刚刚添加的`jtds-1.3.0.jar`文件,将其添加到项目的类路径中。 在代码实现上,你需要导入以下Java和Android相关的库: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import android.database.SQLException; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; ``` 接下来,创建一个`ConnectTask`类,继承自`AsyncTask`,用于在后台线程执行数据库连接操作,避免阻塞UI线程。在`onCreate`方法中,实例化`ConnectTask`并调用`execute()`方法启动任务。 ```java private class ConnectTask extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { String result = ""; try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); Connection conn = DriverManager.getConnection( "jdbc:jtds:sqlserver://<your_server_address>:<port>/<database_name>", // 替换为实际服务器地址、端口和数据库名 "sa", // SQL Server用户名 "123"); // SQL Server密码 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM <your_table_name>"); // 替换为实际表名 while (rs.next()) { result += "Row: " + rs.getString(1) + ", " + rs.getString(2) + "\n"; // 假设你的表有两列 } rs.close(); stmt.close(); conn.close(); } catch (ClassNotFoundException e) { Log.e("DBConnect", "ClassNotFoundException: ", e); } catch (SQLException e) { Log.e("DBConnect", "SQLException: ", e); } return result; } @Override protected void onPostExecute(String result) { TextView textView = (TextView) findViewById(R.id.textView); // 假设你的布局中有名为textView的控件 textView.setText(result); } } ``` 在`doInBackground`方法中,首先加载JTDS驱动,然后使用`DriverManager.getConnection()`建立连接。一旦连接成功,你可以创建一个`Statement`对象来执行SQL查询。在这个例子中,我们简单地查询了表的所有行。在`onPostExecute`方法中,将查询结果显示在界面上。 确保你的Android设备或模拟器可以访问SQL Server所在的网络,并且配置了正确的服务器地址、端口、数据库名、用户名和密码。在运行应用之前,确保SQL Server配置为允许远程连接,并开启了混合认证模式,以便使用SQL Server身份验证。 这个简单的示例展示了如何在Android应用中使用JTDS驱动连接到SQL Server 2008 EXPRESS数据库并执行基本的查询操作。在实际项目中,你可能需要处理更复杂的查询、事务管理、错误处理以及优化性能等问题。同时,为了提高安全性,建议不要在代码中硬编码敏感信息如用户名和密码,而是采用更安全的方式存储和获取这些信息。