Rate this post

在开发Android项目时,我们需要与云服务器进行交互进行列表的展示,下面将介绍开发Android项目时使用JDBC与云服务器进行交互并展示在系统的步骤。

1.声明权限

由于操作云服务器需要进行网络连接,需要在AndroidManifest.xml文件中添加Internet权限,添加如下代码

2添加引用

在build.gradle中添加引用,代码如下:

Implementation files(‘libs/mysql-connector-java-5.1.7-bin.jar’)

3创建子线程用于网络请求

如果主线程访问网络,就会造成“卡顿”。对于网络状况的不可预见性,很有可能在网络访问的时候造成阻塞,那么这样一来我们的主线程UI线程就会出现假死的现象,产生很不好的用户体验。为了避免上述问题的出现,Android禁止在主线程中进行网络请求操作,因此,需要创建一个子线程用于网络请求连接云服务器中数据库的操作。

4使用JDBC连接数据库

JDBC是一个用于执行SQL语句的Java接口,由使用Java代码进行编写的类和接口构成,提供对多个关系型数据库的统一访问。JDBC为访问不同关系型数据库提供了一个同意的基准和方法,使开发人员不受不同数据库的某些特定细节的影响,并允许他们为编写数据库应用程序而自行编写相应的接口和使用工具。JDBC以为数据库开发人员通过使用JDBC可以连接所有支持JDBC驱动程序的数据库系统为目标,减少开发人员对连接不同数据库所进行的适配,使得通过使用JDBC能够在很大程度上简化和加速开发过程,极大的提高了对数据库访问操作的效率。

主要实现逻辑为:

(1)加载并注册数据库驱动,代码如下

Driver

(2)通过Driver Manager获取数据库连接,代码如下:

Connection conn = DriverManager.getConnection(String url,String user,String pass)

getConnection()函数中有三个参数,它们分别表示数据库url、登录数据库的用户名和密码。数据库山通常遵循如jdbc:subprotocol:subname的写法,由于使用MySQL数据库,其形式为:jdbc:mysql://hostname:port/databasename

(3)通过Connection对象获取Statement对象

以创建基本的Statement对象为例,代码如下:

Statement stmt = conn.createStatement();

(4)使用Statement执行SQL语句

Statement有如下三种函数来执行不同的数据库操作:

①execute():可以执行任何SQL语句。

②executeQuery():通常执行查询语句,执行后返回代表结果集的Resultset对象。

③executeUpdate():主要用于执行DML和DDL语句。执行DML语句,如INSERT、UPDATE或DELETE时,返回受SQL语句影响的行数,执行DDL语句返回0。

(5)操作ResultSet结果集

如果执行的SQL语句为查询语句,执行结果将返回保存SQL语句查询的结果Resultset对象,可以通过操作该ResultSet对象来取出查询结果。

(6)回收数据库资源

关闭ResultSet、Statement和Connection等,释放资源。[11]

5向handler传递信息

构造Message,使用handler子函数sendMessage()函数向handler发送信息。

6handler接收消息,执行后续操作

通过handleMessage(Message msg)构造函数接收Message,比对Messa中的信息,如与期待数据相同,则进行刷新UI,跳转界面等操作。