资源描述
1 系统概述
1.1 系统开发背景及目的意义
1.1.1 系统开发背景
计算机的发展至今已有很长的历史了,但是真正将计算机技术应用到生活实践中来,时期还不是很长。现在社会的发展趋势越来越体现出计算机技术的重要性,许多的计算机产品,相关软件的研制开发,越来越受到人们的青睐,计算机也越来越接近人们的生活了。
将计算机技术应用到实际生活中,这一研究是现在最热门的研究课题。作为学生接触最多的也就是教育与教学,在这一环节当中学习计算机,利用计算机相当重要,利用计算机进行网上课堂,网络学习,少去了老师和学生之间的很多不便,例如:时间上的自由选择、学生面对老师的一种紧张和窘迫、学习和解答的及时和快捷等等问题。在计算机软件教学上都可以省去这些不必要的麻烦。
计算机教学现在各大高校以及企事业单位中也已经较多的开始应用了。运用计算机进行教学环节的管理和实践更是方便多多,省去了以前很多的麻烦手续,省去了不必要的诸多申请和批准,现在运用计算机教学来提高教学效率,提高教学质量,培养相对的办事能力,同时也锻炼了自主开发应用计算机的一种兴趣和潜力。
计算机的大容量硬盘存储,高性能高效率的CPU处理器,为现代化的教学管理提供了完备的后备力量,为用户省去了后顾之忧。而且计算机的的功能齐全比我们人力的要快很多倍,省去了很多的人力劳动,进一步真正实现了自动化的教学和管理。
1.1.2 系统开发的目和意义
随着计算机的普及和发展,人们开始利用计算机解决越来越多的实际问题,虽然现在软件的数量如雨后春笋,但依然不能满足用户的各种需要,尤其是用于学校院系教学管理方面的软件。
为了适应这个高科技的信息时代发展,有力地促进教学内容、教学方法改革的力度,满足学校的教学管理要求,实现学校教学管理低成本投入,提高办公效率。最大限度地适应于各种软硬件环境,兼顾不同学科的教学特点,适用于不同水平用户群的通用性要求,以尽可能低廉的投入而获得尽可能高效的教学效益的经济性要求。
目前国内各高校的规模越来越大,进而造成教师教学管理等工作量日趋加大。然而,现代教育的信息化、网络化已经并且正在成为教育发展的一个重要方向,同时也为解决高校教学管理普遍效率低下的现状,使管理突破时空限制,提高工作效率和办学水平,提供了一个很好的突破口。
由于师资力量不足,而学生数量又相对过多,这就会大大增加学校领导和老师的工作量,从而给学校的教学管理和发展建设带来了许多困扰。针对学校的这个问题,本小组两人在老师的带领下开发设计了这套院选课排课系统。希望此系统能更好的为老师和学生服务,便于学校更好的管理、减少教师的工作量,构建一个即方便,又便捷的学习平台。加快我校校园网络化、现代化建设的步伐,充分提高教学管理效率。
1.2 本次设计所做的工作
本次毕业设计过程当中,本人主要负责选课排课系统其中的管理员子系统的设计与实现,在该子系统当中教研室下达教学任务信息、教师查询教学任务信息从而制定出与其相应的课程教学信息、学生可以查询到该门课程的课程信息,在整个系统当中,教师可以查询教学任务信息、课程信息等的相关信息,学生只可以查询到所开设课程的相关课程信息。在设计的过程当中,查阅了大量的教学信息资料,同时也学习使用了JAVA软件环境下的相关控件信息的使用和编码信息技术的应用。在下面的各章中将具体谈到本人所负责的各个环节的具体设计和实现过程。
第 27 页 共 27 页
2 关键工具及其简介
2.1 JAVA技术简介
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动感的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。另一方面,Java技术也不断更新。
Java平台由Java虚拟机(Java Virtual Machine)和Java应用编程接口(Application ProgrammingInterface、简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.6。
Java分为三个体系JavaSE,JavaEE,JavaME。
2.2 MySQL简介
Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境
MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
MySQL主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过40个数据库,包含10,000个表,其中500多个表超过7百万行,这大约有100个吉字节(GB)的关键应用数据。
MySQL数据库的主要功能只在组织和管理很庞大或复杂的信息和基于WEB的库存查询请求不仅仅为客户提供信息,而且还可以为您自己使用数据库可以提供如下功能:
一)减少记录编档的时间
二)减小记录检索时间
三)灵活的查找序列
四)灵活的输出格式
五)多个用户同时访问记录
2.3 JAVA语言简介
Java语言是一个支持网络计算的面向对象程序设计语言。Java语言吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。主要特性如下:
1、Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。
8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
2.4 Session编程语句简介
在web服务器蓬勃发展的时代,session在web开发语境下的语义又有了新的扩展,它的含义是指一类用来在客户端与服务器之间保持状态的解决方案。有时候session也用来指这种解决方案的存储结构,如“把xxx保存在session里”。由于各种用于web开发的语言在一定程度上都提供了对这种解决方案的支持,所以在某种特定语言的语境下,session也被用来指代该语言的解决方案,比如经常把Java里提供的javax.servlet.http.HttpSession简称为session。
2.5 开发与运行环境的选择
2.5.1 软件要求
从Web 应用程序的典型结构可以知道,运行Web 应用程序至少需要Web浏览器、Web 服务器、应用服务器(操作系统)、数据库服务器。而编写Web 应用程序需要一定技术支持和相关集成开发工具。因为用的是Microsoft Windows操作系统和MySQL数据库,所以本系统用的Web浏览器为Internet Explorer 5.0 或以上应用,服务器为Windows XP或以上,编程方式为JAVA。
2.5.2 硬件要求
Web 应用程序虽然运行在多台客户机和至少一台服务器组成的网络上,但在开发阶段,我们可以把一台计算机作为客户机又作为服务器使用,开发完成后再把Web 应用程序迁移到网络中。
1. 应用系统开发工具
表2-1 开发工具
服务器
硬件
处理器:Intel PII 450 或更好
内 存:256M 或更大
硬 盘:20G 或更大
软件
MyEclipse10.0或更高版本
MySQL
Microsoft Office 2000
Mavicat Premium
客户机
硬件
无特殊要求,学校机房用机即可
软件
Microsoft Windows / 2000 / XP 或更高版本
3 可行性研究与需求分析
新时代的教学方式发生了翻天覆地大改变,计算机的进入更是提高了新时代的信息化速度,网络是一个无穷的世界,要达到在网络上学习更是让我们领会到了信息时代的高速和方便。在网络环境中汇集了大量的数据、资料、程序、教学软件、兴趣讨论组、新闻组等学习资源,形成了一个高度综合集成的信息库,并随时向学生开放。这种开放式的网络教育对培养新世纪的国际竞争型人才创造了最有利的条件。网络化教学管理正是这种教育环境下的产物。
3.1 可行性分析
可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对刚刚开发打算进一步应用的系统的必要性和可能性的分析和研究,对该系统的开发从经济、技术、操作三方面进行分析和研究。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。
经济可行性:确定开发项目的开发成本以及估算开发项目所能够产生的经济效益:该系统目前在校园里受到一致好评,在方便高效快捷的基础上,有助于学生学习、教师工作及有效的管理的应用价值,有很好的实用和发展前景。所以本系统在经济上是可行的。
技术上的可行性:确定现有的技术是否能解决本该开发项目:本系统主要采用hibernate和struts架构,采用JAVA语言,和MySQL数据库等主要技术,比较容易实现。所以在技术上也是可行的。
操作可行性:确定软件产品是否能够被最终的用户所接受,用户是否能操作最终的产品:本系统操作简单,方便使用。所以在操作上也是可行的。
综上所述,此系统开发目标已明确,在技术和经济,操作三方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。
3.2 系统功能需求
在进行系统模块设计时,考虑到软件自身的特点结合软件工程开发软件的过程,为了实际需求和便于管理。按系统要实现的功能我们将系统分为学生管理,教师管理,教学课程安排,系统信息维护四个模块。其具体功能如下:
1. 学生管理:按照教学大纲的要求,在计算机中以表格的形式添加并提交学生信息,提交和查询教学课程,按照教学进程的要求,在计算机中以表格的形式添加并提交课程选择信息,让教师和管理员了解教师的教学课程情况。大同小异的还有教师管理系统。
2. 教师课程管理:教师登录系统后可进行信息添加、修改、查询、审核,其中包括教师发表出课程的信息,学生可以通过此信息进行选课。
4. 系统管理:此系统只可管理员登陆,其中以表格的形式可以添加教师,学生以及课程和教师权限的管理。可以明确的表达出系统所有的信息,以便可以及时更改。方便系统的维护。
3.3 系统管理员流程图
系统流程图是概括的描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件,表达的是数据在系统各部件之间流动的情况。系统流程图是系统的总体结构流程,是在系统开发的总体任务的基础上完成的。图中的每个符号以黑盒子的形式定义了组成系统的部件,但并没有具体说明每个部件的具体工作过程,图中的箭头说明了信息通过系统的逻辑路径。
在开发本系统的过程中,系统模块设计如下:
管 理 员 模 块
个 人 管 理
班 级 管 理
学 期 管 理
学 生 管 理
教 师 管 理
用 户 管 理
课 程 管 理
图3.1 管理员模块图
具体过程描述如下:
1.教研室用户(及管理员)按照登陆信息表里的信息登录进入系统,对教学任务信息进行提交。
2.通过教师提交的课程信息进行排课相关的任务。
3.登陆之后可以查看教师以及学生的任何信息以及修改信息的处理。
4.管理员的登出操作。
3.4 数据字典
数据字典(简称DD, 即Data Dictionary)是关于数据的信息的集合,也就是对数据流图中出现的所有数据元素、数据流、文件、处理的定义的集合。
数据字典的作用是在软件分析和设计过程中提供数据描述,是数据流图必不可少的辅助资料。数据流图和数据字典共同构成系统的逻辑模型。
数据字典是在需求分析时建立,在数据库设计过程中不断修改、充实、完善的。数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程五部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
得出了相应的数据字典如下:
3.4.1 数据字典
图3.2 数据字典
3.4.2 主要数据存储定义
1. 名称:用户表
描述:用户基本信息
定义:用户表=用户类型+用户账号+用户密码+用户信息
2. 名称:课程信息表
描述:课程信息
定义:课程信息=课程名称+课程编号+课程人数+课程简介
3. 名称:学生信息表
描述:学生信息
定义:学生信息=学生ID+班级ID+学生姓名+学生简介
4. 名称:教师信息表
描述:教师信息
定义:教师信息表=教师ID+教师简介+教师姓名
3.5 系统E-R图
E是Entity的简写,是实体的意思。是指客观存在可相互区别的事物。实体可以是具体的人、事、物,也可以是抽象的概念或联系。R是Relationship简写,是联系的意思。在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为组成实体内部的联系和实体之间的联系。实体之间的联系通常是指不同实体集之间的联系。实体联系可分三类:一对一联系(1:1),一对多联系(1:N),多对多联系(N:M) 。
在日常生活中,人们通常就是用实体、联系和属性这三个概念来理解现实问题的,因此E-R模型比较接近人们的思维方式。加之其是同简单的图形符号表达系统分析员对问题域的理解,不熟悉计算机技术的用户也能理解它,所以E-R模型是用户与分析员
管理员
课程名
学生成绩
课程号
课程管理
学生姓名
学生账号
教师名称
教师账号
课程状态
图3.3 选排课系统管理员E-R图
学生选课排课系统实体联系图说明:该子系统共有实体四个,分别为:教师、管理员、学生、课程。通过以上对该子系统的分析与研究得出这四个实体之间的联系为,一个教研室根据多门课程下达提交多个教学任务信息,一个教师提交一份教学工作量登记卡和提交多个课程信息,一个学生可以查询多个课程信息。
3.6 系统的功能模块
在进行系统模块设计时,考虑到自顶向下,逐步求精的结构化程序设计方法,按系统要实现的功能我们将系统划分为五个模块,主要有:
1、学生管理模块主要包括:对课程信息和个人相关信息查询。
2、教师管理模块主要包括:课程信息的提交以及对信息的查询功能。
3、管理员管理:主要包括:教师,学生,课程以及管理员自己的信息查询。(本人主要是对这一模块设计和编码)
4 总体设计
总体设计的基本目的就是回答“概括的说,系统应该如何实现?”。总体设计通常有以下几个阶段组成:
1.系统设计,确定系统的具体实现方案。
2.数据库设计,实现对数据的添加、查询功能。
3.结构设计,确定软件结构,也就是要确定系统中每个程序由哪些模块组成的,以及这些模块之间的关系。
在详细设计之前进行全局构思的总体设计,无论从经济,还是从技术上都坚持最简单的最节省的设计思想来实现要设计的内容。
4.1 系统设计的目标
我们设计此系统的目的是为了给老师和同学们创建一个更加简单化、方便化、理想化等的院系教学管理平台。在此平台之下,老师可以完成自己的相关教学信息的维护之外,还可以将自己的教学相关文件进行完成和提交,学生可以很方便快捷的查阅到所开设课程的相关信息,以及所开设课程的代课老师的相关信息。通过此系统更加促进老师和老师、老师和同学之间的相互促进和学习,更加建立了一个祥和的教育管理平台。
而我在此系统中主要实现以下目标为指导:
1. 课程信息的提交和查询
2. 教师和学生安排信息和查询
3. 管理员查询
4.2 系统结构分析
该系统层次结构主要分为以下几个层次,
第一层主要包括三大模块:
教师管理模块、学生管理模块、管理员模块。
第二层主要是上面四大模块自身所包含的若干子模块。
我设计的是管理员模块,这一模块又下分六个子模块,其中的相关信息查询子模块又分为三个小的子模块。
具体说明如下:
1. 课程信息管理模块:主要实现对所开设课程的相关信息的添加。
2. 教师和学生信息管理模块:主要实现对教师和学生的信息查询。
3. 管理员管模块:主要实现对所有模块的查询和修改。
相关信息查询模块:主要实现对课程信息、教师和学生信息以及管理员三部分内容的查询。
5 详细设计及代码实现
详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。详细设计阶段的主要任务就是回答“应该怎样具体地实现这个系统?”在这个阶段的任务是设计出程序的详细规格说明。
5.1 登陆界面
对系统信息进行维护是管理员才有的权限,所以下面的登陆界面只针对管理员用户,主要用于检查管理员编码与密码的一致性;只有真正的管理员用户才能进入本模块进行相应的操作,非管理员用户只能浏览本页,不能进入本模块进行操作。
1.界面设计
图5.1 用户登陆信息界面
2.功能说明
该模块代码所进行的操作,主要是从数据库中搜寻用户编码和密码与输入内容相符的记录,如果存在这样的用户编码和密码,则该用户合法。可以对本模块进行相应的操作。如果不存在这样的用户编码和密码,则显示出错信息。
3.流程说明
用户输入用户名、密码、选择用户类型。数据库中用户信息对其进行验证,如果完整无误,则直接进入系统;如果有误,会自动弹出错误信息对话框,要求用户重新登陆或者与管理员联系。流程图如下:
输入名称类型
开始
登陆界面
登陆类型
用户信息表
结束
教师
教研室
学生
图5.2 教学任务管理子系统登陆流程图
5.2 系统首页界面
管理员界面的设计主要包括以下四方面的内容,即通过此界面转到用户课程信息界面、教师管理界面、学生管理界面、班级以及学期管理界面。
图5.3 系统首页界面
5.3 教师管理界面
在此界面,用户可以对这学期的教学任务进行提交,按照表单上的各项进行填写,最后点击确定提交,会弹出“提交成功”对话框,点击“返回”可以继续添加下一个任务。
1.界面设计
图5.4 教师管理模块界面
2.控件属性设置
表5-1 教学任务管理界面控件设置
名 称
表单元素类型
含 义
TextBox1~20
TextBox
图5.4中各项
Button1
Button
确认提交
Button2
Button
继续下一个
Button3
Button
返回
3.功能说明
管理员对教师和学生信息按照表单上的各项进行如实填写、提交,显示提交成功。点击继续添加下一个继续对下一个任务进行添加,返回到登陆界面。
4.流程说明
用户填写提交,成功进行下一个任务的填写、提交,最后返回到登陆页面。
5.4 课程管理界面
在此界面,管理员可以对课程信息进行添加和修改,课程信息主要包括课程名称等信息。添加完成会弹出“提交成功”对话框,“返回”可以继续添加下一条课程信息。
1.界面设计
图5.5 课程信息管理界面
2.控件属性设置
表5-2 课程信息管理界面控件设置
名 称
表单元素类型
Value 值
含 义
TextBox1~13
TextBox
用户填写
见图5.5中各项
Button1
Button
用户点击
确认提交
Button2
Button
用户点击
继续下一个
Button3
Button
用户点击
确认返回
3.功能说明
教师根据教学任务信息对课程按照表单上的各项进行如实填写、提交,显示提交成功。点击继续添加下一个继续对下一个任务进行添加,返回到登陆界面。
4.流程说明
用户填写提交,成功进行下一个信息的填写、提交,最后返回到首页。
5.5 课程信息查询界面
和其他查询相同的原理,在查询条件栏里输入所要查询的课程的课程名称,点击“查询”就会呈现出和课程信息表一样内容的查询资料表。
1.界面设计
图5.6 课程信息查询界面
2.控件属性设置
表5-3 课程信息查询界面控件设置
名称
表单元素类型
含 义
TextBox1
TextBox
填写课程号
Button1
Button
确认查询
3.功能说明
按照课程编号的查询课程信息,教师和学生都有查询权限。
4.流程说明
输入课程编号,点击查询,会显示出相应的课程的详细信息。
6 关键问题的解决
6.1 连接数据库
目标:通过实现与连接数据库,来完成系统中从运行界面添加数据到库里和在界面上点击查询可以从库里调出数据。
解决方法:通过hibernate配置四个文件,分别为:驱动,url,user(此系统为root)以及密码,然后hibernate会自动连接数据库。
Username=root;连接数据库的验证用户为root。
Password=;连接数据库的密码为200821。
具体操作:现在依本人电脑和系统为例,应用如上所示的连接数据库方法来验证方法的正确性如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url"><![CDATA[jdbc:mysql://localhost:3306/db_stud?useUnicode=true&characterEncoding=UTF-8]]></property>
<property name="connection.username">root</property>
<property name="connection.password">200821</property>
<property name="connection.useUnicode">true</property>
<!--<property name="connection.characterEncoding">UTF-8</property>-->
<!-- 选择数据库连接池 -->
<property name="connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</property>
<property name="c3p0.acquire_increment">1</property>
<!-- 连接池中可用的数据库连接的最大数目 -->
<property name="c3p0.max_size">25</property>
<!-- 可以被缓存的PreparedStatment实例的最大数目 -->
<property name="c3p0.max_statements">50</property>
<!-- 连接池中可用的数据库连接的最大数目 -->
<property name="c3p0.min_size">20</property>
<!-- 设定数据库连接的过期时间,以秒为单位。如果某个连接处于空闲的状态超过此时间,则会从连接池中清除 -->
<property name="c3p0.timeout">90</property>
<!-- 在使数据库连接自动生效之前处于空闲状态的时间 -->
<property name="c3p0.idle_test_period">100</property>
<!-- Hibernate默认使用JDBC的事务处理 -->
<property name="hibernate.transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory
</property>
<!-- 设置JDBC的事务隔离级别 -->
<property name="hibernate.connection.isolation">2</property>
<!-- JDBC批处理大小\sql语句个数 -->
<property name="hibernate.jdbc.batch_size">50</property>
<!-- 打开查询缓存,可以对除针对ID查询外的条件查询进行缓存,使用时需设置query.setCacheable(true) -->
<property name="hibernate.cache.use_query_cache">true</property>
<!-- 将二级缓存打开,默认处于关闭状态 -->
<property name="cache.use_second_level_cache">true</property>
<!-- 配置二级缓存使用的插件(注意:此为Hibernate4.0的配置,还需要slf4j-api.jar和slf4j-nop.jar配合) -->
<property name="hibernate.cache.region.factory_class">
org.hibernate.cache.ehcache.EhCacheRegionFactory
</property>
<!-- 指定数据库的方言 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 是否显示框架自动生成的sql语句 -->
<property name="show_sql">true</property>
<!-- 格式化sql语句 -->
<property name="format_sql">true</property>
<!-- 根据需要自动创建数据库表 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="javax.persistence.validation.mode">none</property>
<property name="jdbc.testOnBorrow">true</property>
<!-- <property name="hibernate.current_session_context_class">thread</property> -->
<property name="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext </property>
<!-- 罗列所有的映射文件 -->
<property name="myeclipse.connection.profile"></property>
<mapping class="com.stu.domain.User" />
<mapping class="com.stu.domain.Role" />
<mapping class="com.stu.domain.Student" />
<mapping class="com.stu.domain.Class" />
<mapping class="com.stu.domain.Resource" />
<mapping class="com.stu.domain.Course" />
<mapping class="com.stu.domain.Teacher" />
<mapping class="com.stu.domain.Semester" />
<mapping class="com.stu.domain.StudentCourse" />
</session-factory>
</hibernate-configuration>
7 系统测试
7.1
展开阅读全文