图 9 社会网络关系图
3.4 Prefuse可视化工具
我们处在一个信息爆炸的时代,对繁杂的抽象信息之间的复杂关系进行探索的努力,促使了信息可视化这一崭新科学领域的出现。
Prefuse[10]是一个可扩展的软件框架,它可以帮助Java语言开发者开发交互的信息可视化程序。它在分析社会网络关系有巨大的作用,我们可以将我们所需要绘制的绘图数据转换为prefuse内部数据的形式,graph,tree。它支持由表,图,树组成的数据结构,字段的数据索引和选择列的查询,并且高效的利用内存。并且通过一组活动的时序机制来实现动画,包含了可视化的变形效果,包括物体位置移动和通过空间的放大缩小,它还融合了lucene文本查询engines,并且内建了类似于SQL的语言语句可以针对数据进行行和列的操作。在位置和动画中还利用了物理力学的模拟,使整个动画的效果非常的真实好看。它支持从XML,数据库导入绘图数据。开发者只要通过简单使用他的API就能将数据库中的数据绘制出来。微博用户之间的好友关系就是一张网络,好友的好友的好友等关系不断蔓延,形成一个网状结构,用prefuse可视化的展示社会关系将会非常的直观和清晰[11]。图10是Prefuse分析社交网络的效果图
图 10 Prefuse社交网络分析图
4 数据库连接技术
4.1 MYSQL
MySQL是一个小型关系数据库管理系统[12]。它是完全网络化的跨平台关系型数据库系统,是一个真正的多用户,多线程SQL数据库服务器,同时是具有C/S体系结构的分布式数据库管理系统,它具有功能强,使用简便,管理方便,运行速度快,安全可靠性强等有点,用户可以利用许多语言编写访问Mysql数据库的程序,对于中,小型应用系统是非常理想的。除了支持标准的ANSISQL语句,更重要的是,它还支持多种平台。。它支持Linux,Mac OS,Windows等多种操作系统,并且为多种编程语言提供了API,提供了TCP/IP、ODBC和JDBC等多种数据库连接途径。这些系统特性使得它收到绝大多数个人开发者和中小型企业的追捧。目前Internet上流行的网站架构方式就是LAMP(Linux+Apache+MySQL+PHP)。由于这四个软件都是免费的或者开源软件,因此使用者可以不用花一分钱就建立起一个稳定、免费的网站系统。
4.2 JDBC
JDBC,全称Java Database Connectivity [13]是一种用于执行SQL语句的Java API.提供了诸如查询和更新数据库中数据的方法。它由一组Java语言编写的类与接口组成。使用JDBC可以很容易地把SQL语句传送到任何关系型数据库中。JDBC API 提供两种主要接口:一
是面向开发人员的Java.sql程序包,使得Java程序员能够进行数据库连接,执行SQL查询,并得到结果集合,另一方向是面向底层数据库厂商的JDBC驱动,它介于前端应用程序与后端数据源之间。根据其特性不同,大致分为4种类型:
1. JDBC-ODBC桥驱动程序。应用程序通过JDBC-ODBC桥,以调用ODBC连接数据
源,由于微软windows系统中的ODBC大多已支持各种类型的数据源,因此在建构上较为方便,可直接使用JDK附属的驱动程序进行连接。但是由于经过了桥的转换,因此在效率上并不十分理想。因此不太适合于企业应用上。 2. Native API 驱动程序。此类型驱动程序也需要经过类似桥的机制连接数据源,所不
同的是,此类型的桥为原声函数库,是软件厂商针对其数据库自行开发的。由于使用了源生码,提高了执行速度。但如果出错,修改起来也将非常麻烦。 3. Net-Protocol 驱动程序。此类JDBC驱动程序会将SQL语句转换成为标准网络协议,
交由数据库网关或应用程序服务器处理,应用程序服务器将标准网络协议翻译成为数据库厂商的专有特殊数据库访问协议与数据库通信。此类驱动程序可充分运用程序服务器的安全机制,并且不需要额外的ODBC或者原生函数库等机制,因此系统可移植性强。 4. Native-Protocol 驱动程序。此类驱动程序不需要任何中介机制,直接转换JDBC调
用,成为DBMS的网络协议,直接访问数据源,这对Internet应用是高效的,但是由于缺乏安全机制的支持,可能会存在一些潜在的安全隐患。 Java与JDBC的结合,使程序员可以只写一次数据库应用软件后,就能在各种不同数据库上运行,真正发挥了Java“编写一次,处处运行”的优势。
4.3 本系统对数据库连接的封装
本次课题在JDBC的基础写了一个管理数据库的封装类。封装了与数据库连接方法,数据库数据更新方法,类结构如图11所示。
图 11 数据库管理类
本系统所用到的数据库表结构如图12所示:
图 12 数据库表结构
图 13 好友关系表结构
图 14 微博评论表结构
图 15 微博信息表结构

