简介
当我们开发安卓应用时,经常需要使用数据库来存储数据。而最常见的商业数据库是Microsoft SQL Server,因此本文将介绍如何在安卓中连接并使用MSSQL。
前提条件
在开始连接MSSQL之前,需要满足以下条件:
1. 启用TCP/IP协议
为了允许安卓应用从外部访问MSSQL数据库,必须启用TCP/IP协议。这可以通过SQL Server Configuration Manager实现。从“SQL Server Network Configuration”下的“Protocols for MSSQLSERVER”中启用TCP/IP协议。
2. 允许远程连接
为了允许从外部访问数据库,需要打开MSSQL服务器的防火墙端口并配置允许远程连接。这可以通过SQL Server Management Studio实现。打开“SQL Server Management Studio”,选择“Security”菜单,然后选择“Server Properties”。
在弹出的窗口中,选择“Connections”选项卡。确认“Allow remote connections to this server”选项已经选择。确认端口号是正确的(默认端口是1433)。
现在,您的MSSQL服务器已经准备好与安卓应用程序进行通信了。
安装MSSQL驱动程序
为了在安卓应用程序中连接MSSQL,您需要使用MSSQL JDBC驱动程序。您可以从Maven仓库或官方网站上下载JDBC驱动程序。
// Gradle依赖
implementation "com.microsoft.sqlserver:mssql-jdbc:9.2.0.jre11"
建立连接
在Java中使用JDBC API连接MSSQL非常简单。唯一需要记住的是,您需要指定MSSQL的JDBC URL和用户名/密码。
以下是一个基本的示例,展示如何建立一个连接:
// JDBC连接示例
String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=mydatabase;user=myusername;password=mypassword;";
Connection con = DriverManager.getConnection(connectionUrl);
执行查询
连接成功之后,我们可以使用Java的Statement或PreparedStatement对象来执行SQL查询。
下面的示例演示了如何使用PreparedStatement对象查询数据库:
// PreparedStatement 示例
String SQL = "SELECT * FROM Customers WHERE Country = ?";
try (Connection con = DriverManager.getConnection(connectionUrl);
PreparedStatement stmt = con.prepareStatement(SQL);) {
stmt.setString(1, "UK");
try (ResultSet rs = stmt.executeQuery();) {
while (rs.next()) {
// 获取查询结果
}
}
}
1. Statement
Statement对象用于执行静态的SQL语句。它可以执行任何SQL查询,包括SELECT、INSERT、UPDATE和DELETE。
下面的示例演示了如何使用Statement对象执行SELECT语句:
// Statement 示例
String SQL = "SELECT * FROM Customers";
try (Connection con = DriverManager.getConnection(connectionUrl);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SQL);) {
while (rs.next()) {
// 获取查询结果
}
}
2. ResultSet
ResultSet对象代表查询结果集。您可以使用rs.next()方法遍历结果集中的每一行。对于每一行,您可以使用getter方法获取列的值。
例如,以下代码显示如何遍历ResultSet:
// ResultSet 示例
while (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
float salary = rs.getFloat("salary");
}
错误处理
当连接或查询出现问题时,JDBC API将抛出SQLException。因此,我们应该使用try-with-resources语句捕获和处理异常。
以下是一个错误处理的示例:
// 错误处理
try (Connection con = DriverManager.getConnection(connectionUrl);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SQL);) {
while (rs.next()) {
// 获取查询结果
}
} catch (SQLException e) {
// 处理异常
e.printStackTrace();
}
总结
此时,您应该已经了解了在安卓中连接并使用MSSQL的基本方法。在实际开发中,您需要进一步了解JDBC API的其他功能,并使用它们来处理复杂的查询、插入和更新操作。