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:数据库导出文件
