Java课程设计
实验报告
课程名称: | Java课程设计 |
指导教师: | 李玺 |
姓 名: | 帅康 |
学 院: | 信息科学与工程学院 |
专业班级: | 计算机科学与技术×××× |
学 号: | ×××××××××× |
20××年××月
需求分析
我们选择的题目是网页版客服聊天系统,这个系统包含了一对一客服聊天功能,对此,我们做了以下的需求分析以及对一些扩展,比如多人聊天、APP客户端开发等。
需求
∙需求 1:利用Web socket技术实现网页版即时聊天
∙需求 2:实现即时聊天的基础上拥有登录、注册功能
∙需求 3:在即时聊天基础上实现私聊聊及其相关功能
∙需求4:在用户系统基础上实现用户资料修改功能
∙需求5:在以上功能实现的基础上实现日志系统等功能
∙需求6:实现图灵机器人功能
∙需求7:由于特殊情况下可能需要用到定位功能,所以要提供地图定位功能
∙需求8:实现网络安全功能
∙需求9:实现web端开发的基础上,再进行APP端的开发
目标
∙目标 1:利用web socket实现全部的通信功能
∙目标 2:利用mybatis进行数据库管理
∙目标 3:利用Spring+Spring MVC进行MVC模式系统开发
∙目标4:利用Android底层框架实现app客户端开发
解决方案
∙建议 1:使用http进行身份认证,然后注册认证过的会话用于web socket的认证
∙建议 2:使用数据库连接池进行数据库连接管理
∙建议 3:使用MVC模式开发整个系统
∙建议4:使用Marven包管理方便开发与部署
总体设计
第一层 驱动和中间介层
数据库驱动-JDBC
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JDBC 是个"低级"接口,也就是说,它用于直接调用 SQL 命令。在这方面它的功能极佳,并比其它的数据库连接 API 易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。高级接口是"对用户友好的"接口,它使用的是一种更易理解和更为方便的 API,这种API在幕后被转换为诸如 JDBC 这样的低级接口。
在关系数据库的"对象/关系"映射中,表中的每行对应于类的一个实例,而每列的值对应于该实例的一个属性。于是,程序员可直接对 Java 对象进行操作;存取数据所需的 SQL 调用将在"掩盖下"自动生成。此外还可提供更复杂的映射,例如将多个表中的行结合进一个 Java 类中。
随着人们对 JDBC 的兴趣日益增涨,越来越多的开发人员一直在使用基于 JDBC 的工具,以使程序的编写更加容易。程序员也一直在编写力图使最终用户对数据库的访问变得更为简单的应用程序。例如应用程序可提供一个选择数据库任务的菜单。任务被选定后,应用程序将给出提示及空白供填写执行选定任务所需的信息。所需信息输入应用程序将自动调用所需的 SQL 命令。在这样一种程序的协助下,即使用户根本不懂 SQL 的语法,也可以执行数据库任务。
JavaSoft提供三种JDBC产品组件,它们是Java开发工具包(JDK)的组成部份:JDBC驱动程序管理器、JDBC驱动程序测试工具包和JDBC-ODBC桥。
JDBC驱动程序管理器是JDBC体系结构的支柱。它实际上很小,也很简单;其主要作用是把Java应用程序连接到正确的JDBC驱动程序上,然后即退出。
JDBC驱动程序测试工具包为使JDBC驱动程序运行您的程序提供一定的可信度。只有通过JDBC驱动程序测试的驱动程序才被认为是符合JDBC标准TM的。
JDBC-ODBC桥使ODBC驱动程序可被用作JDBC驱动程序。它的实现为JDBC的快速发展提供了一条途径,其长远目标提供一种访问某些不常见的DBMS(如果对这些不常见的DBMS未实现JDBC)的方法。
使用的时候,需要首先下载相应的驱动,然后配置java工程里面的环境,再书写代码。因为JDBC是一个开放的标准,所以在使用的时候。需要先用反射加载驱动。可以使用ClassLoader,也可以直接用Class.forName进行反射,反射的时候会自动运行驱动程序类的静态代码块,在静态代码块里面会进行数据库连接的初始化。同时因为这个关系,如果静态代码块初始出现异常,数据库功能将不能使用,除非重启程序。
一般使用数据库连接的时候会使用连接池,这里连接池我们使用以下语法进行定义:
/**
* 连接池启动
*/
private static void startPool() {
initDataSource();
if (connectionPool != null) {
destroyPool();
}
try {
connectionPool = new GenericObjectPool(null);
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(url, name, password);
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionF
actory(connectionFactory,
connectionPool, null, null, false, true);
Class.forName("org.apachemons.dbcp.PoolingDriver");
PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");
driver.registerPool("dbpool", connectionPool);
System.out.println("装配连接池OK");
} catch (Exception e) {
e.printStackTrace();
}
}
Mybatis
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论