字段名 注释
Stopname 公交站站名
near1 附近标志1
near2 附近标志2
near3 附近标志3
near4 附近标志4
near5 附近标志5
near6 附近标志6
near7 附近标志7
near8 附近标志8
near9 附近标志9
near10 附近标志10
Stoppic 臃余字段,为以后功能预先留出
(3) 站点附近标志汇总表
负责存放站点周围标志建筑或地名的汇总信息,本表为站点信息表的near集合自动生成。如表4所示。
表4站点附近标志汇总表
站点附近标志汇总表(stopinfo)
字段名 注释
Id 标志的id
Nearname 标志的名字
(4) 用户公告表
负责存放本系统的公告信息。如表5所示。
表5用户公告表
用户公告表(notify)
字段名 注释
Id 消息的id
Content 消息内容
Date 消息发布日期
(5) 查询统计表
负责统计用户查询和下载量。如表6所示。
表6查询统计表
查询统计表(jishuqi)
字段名 注释
Id id
Fangwen 查询量
Xiazai 客户端下载量
手机公交查询系统功能详细实现
经过上面的描述,已经明确了手机公交查询系统需要实现的功能以及如何去完成这些功能。下面将具体的阐述如何实现这些功能。
服务器端的实现
本系统遵照J2EE 3、4层结构,使用了MVC、AO等设计模式,组织结构图如图6所示。
图6 系统组织结构图
基类(Base Class)的实现
采用AO模式,将数据库相关方法封装到一个基类中,由业务逻辑继承该基类。
数据库连接(Connection)通过配置WEB服务器上的连接池,同时将数据源绑定到JNDI,程序直接通过JNDI Name获取,实现了数据源的可配置性和高度可移植性。获取JNDI Name方法如下:
Javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup(dsName) ;
//从数据源得到连接
conn = ds.getConnection() ;
因为后面需要多次调用关闭数据库连接,故关闭连接封装到一个方法中,具体实现如下:
//关闭数据库连接
public void close(ResultSet rs,PreparedStatement ps,Connection con){
try{
if(rs!=null){
rs.close();
}
if(ps!=null){
ps.close();
}
if(con!=null){
con.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
辅助类(Help Class)的实现
辅助类主要为业务类提供一些辅助功能,尽量实现功能的分离和高度封装。同时为了加快运行速度,减少JVM编译负担,采用PreparedStatement。部分方法如下:
(1)获得公交总数
一般查找总数用”select count(*) from businfo”,但这样因为是顺序遍历,一直要遍历到最后一条,效率不高,此处使用sqlRst.last();使游标直接指向最后一条记录,再用buscount = sqlRst.getRow();记录最后一条记录的行号,从而得到了总行数,比起前一个方法更快而且节约系统资源。
(2)插入数据库缓存,使得下一个用户查询该方案时可以直接从数据库中获取结果,从而大大的节约了用户时间和系统资源。实现方法如下:
String sql="insert into zhuanchen
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/10/10
免费基于J2ME的公交查询系统的设计与实现(四)由毕业论文网(www.huoyuandh.com)会员上传。