计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

免费基于J2ME的公交查询系统的设计与实现(一)(4)

2013-06-26 01:16
导读:p; 站点信息表(stopinfo) 字段名注释 Stopname公交站站名 near1附近标志1 near2附近标志2 near3附近标志3 near4附近标志4 near5附近标志5 near6附近标志6 near7附近标志
p;           站点信息表(stopinfo) 
 字段名  注释 
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) 
 字段名  注释  (科教作文网 zw.nseac.com整理)
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)的实现 (科教范文网 lw.AsEac.com编辑整理)
 辅助类主要为业务类提供一些辅助功能,尽量实现功能的分离和高度封装。同时为了加快运行速度,减少JVM编译负担,采用PreparedStatement。部分方法如下:
 (1)获得公交总数
 一般查找总数用”select count(*) from businfo”,但这样因为是顺序遍历,一直要遍历到最后一条,效率不高,此处使用sqlRst.last();使游标直接指向最后一条记录,再用buscount = sqlRst.getRow();记录最后一条记录的行号,从而得到了总行数,比起前一个方法更快而且节约系统资源。
 (2)插入数据库缓存,使得下一个用户查询该方案时可以直接从数据库中获取结果,从而大大的节约了用户时间和系统资源。实现方法如下:
    String sql="insert into zhuanchen

上一篇:免费目录服务和身份管理系统在电力企业中的设 下一篇:没有了