技术开发 频道

DdlUtils实现Mobile Client开发篇

3  Mobile Client的开发流程

Mobile Client的开发流程主要包括3个重要环节:数据库模型的导出,数据库数据的导出和数据文件的导入。

3.1  数据库模型的导出

从活动的数据库中导出数据库模型。数据库模型的导出必须要有数据源(DataSource),而数据源需要由活动的数据库的URL来建立。平台通过读取方法(readModelFromDatabase)直接从数据源中获取数据库模型,再通过数据库模型I/O类(DatabaseIO)的写出方法将模型转换成XML文件。

本案例中通过Apache DBCP(Database Connection Pool API)包,建立了基于连接池的数据源。以下是关键代码:

public DataSource setupDataSource() { //org.apache.commons.dbcp.BasicDataSource BasicDataSource bds = new BasicDataSource(); //Sets the jdbc driver class name. bds.setDriverClassName("com.mysql.jdbc.Driver"); //Sets the url. bds.setUrl("jdbc:mysql://localhost/phome"); //Sets the username. bds.setUsername("root"); //Sets the password. bds.setPassword(""); return bds; }

以下是数据库模型的输出关键代码,可以说是寥寥数语:

public ExportModel(final String __modelFile) { DataSource ds = setupDataSource(); //Creates a new platform for the specified database. Platform pf = PlatformFactory.createNewPlatformInstance(ds); //Reads the database model from the live database as specified by the data source set for this platform. Database db = pf.readModelFromDatabase("phome"); //Writes the database model to the specified file. new DatabaseIO().write(db, __modelFile); }

所输出的模型文件,就是上图1中看到的内容。

3.2  数据库数据的导出

用于将活动的数据库中的数据转移到XML文件中。数据的导出必须结合数据源和数据库模型来完成。

(1)首先是载入数据库模型文件(即3.1中输出XML文件)。
通过数据库模型I/O类的读取方法来读取模型文件。

public Database getModelFromFile(File __modelFile) throws DdlUtilsException { //Reads the database model contained in the specified file. return(new DatabaseIO().read(__modelFile) ); }

(2)建立数据输出流
将数据库数据输出流绑定到文件即可实现数据库数据到文件的输出。

(3)通过平台执行SQL语句,将数据集通过数据输出流写入到XML文件中。
需要注意的是:
①导出过程可以是条件导出,例如:只导出符合条件的记录,或者只导出指定的字段等等,通过SQL条件语句就可以实现,不需要开发人员关注导出过程。

②1个数据输出流对象可以用于输出1个数据库中所有的数据表。1个数据输出流对象只能对应1个数据库。对于多个数据库,就需要建立多个数据输出流对象。以下是关键代码:

以上代码中,通过1个数据输出流对象和多个SQL语句实现了同一数据库中多个数据表的数据输出。下图2是一个实际的数据库导出文件:
 
图2:数据库导出文件
 

0
相关文章